Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/292.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
ImageMagick PHP需要生成高质量的缩略图_Php_Imagemagick - Fatal编程技术网

ImageMagick PHP需要生成高质量的缩略图

ImageMagick PHP需要生成高质量的缩略图,php,imagemagick,Php,Imagemagick,我正在使用php imagemagick生成缩略图 如果我将bestfit设置为true,并且大小为50x50,则会生成36x50大小的图像(质量良好) 如果我将bestfit设为false,并且大小为50x50,则会生成50x50大小的图像(质量差) 我需要一个解决方案,无论图像大小(最低我会上传200X200)我给 它需要在ImageMAgick中提供具有良好质量和技术的50x50???使用,而不是$im->thumbnailImage()查看(MIT许可证) 它支持自适应调整大小 它所

我正在使用php imagemagick生成缩略图

  • 如果我将bestfit设置为true,并且大小为50x50,则会生成36x50大小的图像(质量良好)
  • 如果我将bestfit设为false,并且大小为50x50,则会生成50x50大小的图像(质量差)
我需要一个解决方案,无论图像大小(最低我会上传200X200)我给 它需要在ImageMAgick中提供具有良好质量和技术的50x50???

使用,而不是
$im->thumbnailImage()

查看(MIT许可证)

它支持自适应调整大小

它所做的是调整图像的大小,使其尽可能接近所需的尺寸,然后从中心向下裁剪图像至适当的大小

require_once '/path/to/ThumbLib.inc.php';  

$thumb = PhpThumbFactory::create('test.jpg');  
$thumb->adaptiveResize(50, 50)->save('/path/to/new_thumb.jpg');  
PHP Thumb是一个轻量级图像 操作库针对的是 缩略图生成。它的特点是 能够根据宽度、高度和, 和百分比,创建自定义作物, 或从中心开始的方形作物,以及 旋转图像


请展示一些代码,理想情况下,示例“良好质量”是否意味着“保持比例”?例如,如果上载300x200图像,您希望将其大小调整为75x50,然后将其裁剪为50x50(在本例中,通过从左侧移除13px,从右侧移除12px)?$originalImage=tmp image upload newImage=$this->rootpath.'/'.$location_1./'.$thumb['name'.$name//传递imagepath和width&height需要生成thumb$this->makeThumb($originalImage,$newImage,50,50,true)//在上面的最后一个参数中是bestfit(true/false)函数makeThumb($originalImage,$newImage,$width,$height,$bestfit){$width=intval($width);$height=intval($height);$im=new Imagick();试试看{/*读取图像文件/$im->readImage($originalImage);/thumbnailImage(宽度100,保留尺寸)/$im->thumbnailImage($width,$height,$bestfit);/Write-mail-to-disk/$im->writeImage($newImage);/Get上传图像的大小/$size=getimagesize($newImage);/获取当前高度和宽度差*/}catch(ImagickException$e){return false;}return true;$im->destroy();}*如果我上传300x200..它需要找到该图像的中心点,并需要从那里计算50x50..需要删除左右一些像素