php - 使用 php Imagick 保留背景调整 PNG 的大小

标签 php image imagick

我正在尝试使用 cropThumbnailImage 调整图像大小。我使用 cropThumbnailImage,因为它会调整原始图像的较短长度,并在两侧均等地裁剪较长的图像,以便图像的中心部分保持未裁剪。这适用于 jpg 图像,但对于 png 图像,调整大小后的 png 会得到黑色背景。

以下是我使用的代码。

    $image = new \Imagick($src);

    // resize & crop
    $image->cropThumbnailImage($width, $height);

    // save new resized file
    $image->writeImage($dest);

为以下 png 图像运行此代码。

http://tuxpaint.org/stamps/stamps/animals/birds/cartoon/tux.png http://www.cs.csubak.edu/~mcabrera/CS211/transparent.png http://www.tcarms.com/media/assets/productPhotos/006_G2%20Contender/png/Pistol_12in_Ribbed_Blued_2720.png

输出图像根据需要调整大小,但 png 图像变为黑色背景。

尝试从 here 添加以下行但没有用。

imagealphablending( $image, false );
imagesavealpha( $image, true );

网络上还有其他解决方案可以调整 png 图像的大小,但我没有找到像 cropThumbnailImage 那样调整图像大小的解决方案。

最佳答案

使用以下代码片段保留透明度:

$im = new Imagick($imgPath);
$im->setImageFormat('png');
$im->writeImage('/files/thumbnails/new_title.png');

关于php - 使用 php Imagick 保留背景调整 PNG 的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17296559/

相关文章:

javascript - 使用 Ajax 将带有字母数字键的数组发送到 PHP 脚本

php - 拉维尔 5.2 : Class Imagick not found

php - Psr-4 composer 自动加载自己的类 - 未找到

php - 使用不同的 php 脚本获取 wp_loggedin 值,然后在 Android 应用程序中返回值

java - 从java中的图像中读取加密字节

jquery - 图片没有出现在 <tr> 的背景中

php - Imagemagick PDF 转 JPG 质量差 PHP

php - 在 PHP 中为 .ppt 和 .pptx 生成缩略图

javascript - 来自 Laravel API 的 Vuejs 全局用户对象

image - 如何提取MVIMG的照片/视频组件?