duandie0921 2015-07-15 13:38
浏览 106
已采纳

如何在PHP中使用透明度最小化和调整PNG图像的大小

I have 512 * 512 big size PNG images with transparency.

How to create 256 * 256 PNG images with smaller file size, which also support transparency and maintaining quality.

EDIT: I'm using this code but the output image is cropped and not supporting transparency.

   $image = imagecreatefrompng("C:\Users\HP\htdocs\icon_hd.png");  // 512 * 512
    $bg = imagecreatetruecolor(256, 256);
    imagefill($bg, 0, 0, 0);
    imagealphablending($bg, TRUE);
    imagecopy($bg, $image, 0, 0, 0, 0, imagesx($image), imagesy($image));
    imagedestroy($image);
    $quality = 100;
    imagepng($bg, "C:\Users\HP\out_icon.png", 9);
    imagedestroy($bg);
  • 写回答

2条回答 默认 最新

  • douyong4842 2015-07-15 13:49
    关注

    You can use ImageMagick :

    Simple example:

    $inFile = "big_img.png";
    $outFile = "small_img.png";
    $image = new Imagick($inFile);
    $image->thumbnailImage(256, 256);
    $image->writeImage($outFile);
    

    More info

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 metadata提取的PDF元数据,如何转换为一个Excel
  • ¥15 关于arduino编程toCharArray()函数的使用
  • ¥100 vc++混合CEF采用CLR方式编译报错
  • ¥15 coze 的插件输入飞书多维表格 app_token 后一直显示错误,如何解决?
  • ¥15 vite+vue3+plyr播放本地public文件夹下视频无法加载
  • ¥15 c#逐行读取txt文本,但是每一行里面数据之间空格数量不同
  • ¥50 如何openEuler 22.03上安装配置drbd
  • ¥20 ING91680C BLE5.3 芯片怎么实现串口收发数据
  • ¥15 无线连接树莓派,无法执行update,如何解决?(相关搜索:软件下载)
  • ¥15 Windows11, backspace, enter, space键失灵