2017-01-23 9 views
2

私は以下の問題があります。使用した後に別のフォーマットに変換した後、画像に灰色の汚れがあります。私はJPGにPDFを再フォーマットするためにImageMagickを使用します。すべてがうまくいくが、画像上に三角形の形でマークが現れる。前後のコード例と画像例を示します。ImageMagick php

$pdf_file = $name[0] . '.pdf'; 

$im = new imagick($pdf_file); 

$i = 0; 

foreach ($im as $_img) { 

    $i++; 

    $_img->setResolution(300, 300); 

    $im->setImageColorspace(255); 

    $im->setCompression(Imagick::COMPRESSION_JPEG); 

    $im->setCompressionQuality(60); 

    $_img->setImageFormat('jpg'); 

    $_img->writeImage(__DIR__ .'/'.$main_name[0] . '.jpg'); 

} 


$im->destroy(); 

$new_name = DIR .'/'. $main_name[0] . '.jpg'; 

$new_name1 = $main_name[0] . '.jpg'; 

//$new_name1 = preg_replace('/[^A-Za-z0-9\-]/', '', $new_name1); 


$size = getimagesize($new_name1); 
$ratio = $size[0]/$size[1]; // width/height 
if($ratio > 1) { 
    $width = 700; 
    $height = 700/$ratio; 
} 
else { 
    $width = 700*$ratio; 
    $height = 700; 
} 
$src = imagecreatefromstring(file_get_contents($new_name1)); 
$dst = imagecreatetruecolor($width,$height); 
imagecopyresampled($dst,$src,0,0,0,0,$width,$height,$size[0],$size[1]); 
imagedestroy($src); 
imagepng($dst,$new_name1); // adjust format as needed 
imagedestroy($dst); 

enter image description here

答えて

0

"汚れ" はJPEGアーティファクトです。より高い "品質"(60は非常に低く、このタイプの画像には90が良い)を使用するか、代わりにPNGを使用します。高品質のJPEGは、もちろん、より大きなファイルサイズを占めるでしょうが、それはトレードオフです。

+1

残念ながら、それは役に立たなかった。私は90と100を試しました –

+0

JPEGの代わりにPNGまたはPPMに変換してみてください。汚れがまだ残っている場合は、JPGエンコードまたはPDFデコードを責めるかどうかがわかります。 –