将图像形式300 DPI转换为72 DPI,调整大小和高度

时间:2014-04-08 07:34:19

标签: php image-resizing dpi

我正在寻找php中的解决方案,将我的图像从300 DPI转换为72 DPI。 这样脚本首先检查img == 72 DPI什么都不做,转换为72 DPI。然后检查大小并调整图像大小。

像这样。

if ($image(dpi) > 72 dpi) {
   convert to 72 DPI;
}
else {
}

3 个答案:

答案 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');
}