我正在寻找php中的解决方案,将我的图像从300 DPI转换为72 DPI。 这样脚本首先检查img == 72 DPI什么都不做,转换为72 DPI。然后检查大小并调整图像大小。
像这样。
if ($image(dpi) > 72 dpi) {
convert to 72 DPI;
}
else {
}
答案 0 :(得分:1)
使用以下代码行将图像dpi从300转换为72 dpi:
$filename = "Enter path of the image which you want to use";
$ image = file_get_contents($ filename);
$ image = substr_replace($ image,pack(" cnn",1,72,72),13,5); file_put_contents($文件名,$图像);
答案 1 :(得分:0)
试试这个:
$image = imagecreatefromjpeg($source);
$image = imagecreatefromgif($source);
$image = imagecreatefrompng($source);
imagejpeg($source_image, $destination_image, $quality); //i'd say keep quality up to 70. anything over that is too much for no reason
我的建议只是限制上传大小,问题就解决了。
但要回答你的问题,请使用ImageMagick:
$img = new Imagick();
$img->setResolution(25,25);
答案 2 :(得分:0)
要将图像转换为不同的分辨率,您需要ImageMagick。
$img = new Imagick($imgname);
if ($img) {
$width=$img->getImageWidth();
$height=$img->getImageHeight();
$res=$img->getImageResolution();
$colorspace=$img->getImageColorspace();
$resx=$res['x'];
$resy=$res['y'];
echo 'Image is '.$width.'x'.$height.' resolution: '.$resx.'x'.$resy.' colorspace='.$colorspace.'='.$colorspace_array[$colorspace];
$cmw=($width/$resx)*2.54;
$cmh=($height/$resy)*2.54;
echo 'Image is '.$cmw.'cm x '.$cmh.'cm';
// creating 72dpi version
$w72=round($width*72/$resx);
$h72=round($height*72/$resy);
if ($w72>$width || $h72>$height) {
$w72=$width;
$h72=$height;
}
$img->resizeImage($w72,$h72,imagick::FILTER_QUADRATIC,1);
$img->writeImage('newimage.png');
} else {
die('Unknown image format');
}