Php Imagemagick调整大小控制质量和扩展
我正在努力学习Imagemagick,php.net文档非常糟糕,我似乎找不到任何问题的答案。我想让人们上传图像,然后调整它们的大小,并丢失EXIF数据 这是我目前拥有的Php Imagemagick调整大小控制质量和扩展,php,resize,imagemagick,image-resizing,Php,Resize,Imagemagick,Image Resizing,我正在努力学习Imagemagick,php.net文档非常糟糕,我似乎找不到任何问题的答案。我想让人们上传图像,然后调整它们的大小,并丢失EXIF数据 这是我目前拥有的 $thumbnail = new Imagick("http://4.bp.blogspot.com/-hsypkqxCH6g/UGHEHIH43sI/AAAAAAAADGE/0JBu9izewQs/s1600/luna-llena1.jpg"); $thumbnail->thumbnailImage( 100, 100
$thumbnail = new Imagick("http://4.bp.blogspot.com/-hsypkqxCH6g/UGHEHIH43sI/AAAAAAAADGE/0JBu9izewQs/s1600/luna-llena1.jpg");
$thumbnail->thumbnailImage( 100, 100, true );
$thumbnail->writeImage( "avatar/thumbnail.jpg" );
现在,如何控制要保存为的图像文件?假设用户提交了一张gif/png/jpg,那么我该如何拍摄该图像,然后将其保存为相同的输入格式,或者将其全部更改为.png?我同意,PHP.net文档没有多大帮助。我发现最简单的方法是找到如何使用命令进行操作,然后将命令与PHP方法相匹配。我回复有点晚,所以你现在可能已经明白了,但如果不是,或者为了其他人的利益: 如果要在保存前更改图像格式,请在
writeImage
行之前添加以下内容:
$thumbnail->setImageFormat('png');
然后将writeImage行中的扩展名更改为匹配,例如缩略图.png
要更改质量,请编写:
$thumbnail->setImageCompressionQuality(40); // Adjust the number 40
在某些情况下,您可能还希望通过以下方式设置压缩类型:
$thumbnail->setImageCompression(Imagick::COMPRESSION_JPEG);
您可以在此处找到压缩常数:
注意:这些只是示例。这种压缩实际上不适用于png文件。此IMO为imagick缩略图生成最佳结果 加载图片
$img = new imagick( $_FILES['Picture']['tmp_name'] );
$img->trimImage(0);
把图片上多余的部分剪掉
$img = new imagick( $_FILES['Picture']['tmp_name'] );
$img->trimImage(0);
创建缩略图,在本例中,我使用“cropThumbnailImage”
$img->cropThumbnailImage( 180, 180 );
设置格式,使所有图片现在都可以使用相同的标准格式
$img->setImageFormat( 'jpeg' );
将图像压缩设置为jpg的压缩
$img->setImageCompression(Imagick::COMPRESSION_JPEG);
将质量设置为100
$img->setImageCompressionQuality(100);
结果的缩略图在我看来有点模糊,所以我添加了一个轻微的锐化效果,使其“更清晰”。玩这些设置,但我喜欢
$img->unsharpMaskImage(0.5 , 1 , 1 , 0.05);