首页 文章

使用Imagemagick PHP将图像75 dpi转换为300 dpi

提问于
浏览
1

我试图将非常低分辨率的jp2图像增加到更高的DPI,以便可以看到图像而不会给我们的眼睛带来任何不便 .

我成功地读取了一个jpeg2000编码的字符串并将其显示为PNG文件 . (下面是代码)

$imagedata = "AAAADGpQICANCocKAAAAFGZ0eXBqcDIgAAAAAGpwMiAAAAAtanAyaAAAABZpaGRyAAAAyAAAAKAAAwcHAAAAAAAPY29scgEAAAAAABAAAAGXanAyY/9P/1EALwAAAAAAoAAAAMgAAAAAAAAAAAAAAKAAAADIAAAAAAAAAAAAAwcBAQcBAQcBAf9SAAwAAAABAQUEBAAA/1wAI0JvGG7qbupuvGcAZwBm4l9MX0xfZEgDSANIRU/ST9JPYf9kACIAAUNyZWF0ZWQgYnk6IEpKMjAwMCB2ZXJzaW9uIDQuMf+QAAoAAAAAAQMAAf9SAAwAAAABAQUEBAAA/5PPoKgT/dHUscn3uMJWDWKb153z8hPvSInB8QsdvHSg4pzoLevV6cHhwCOWrDWed1zB8RKHyC4PEhigx/MYuIx4wci8q/CEo2kiHBrV8DhszG7ymZ/UH7atm39cdbppgIDD4VYfCrB00E+GI+Qf3v1IHzVdC6k/pMRXolANASf+TQYCTKERfZoHB65rCU23EcMzjiQo+2MAmLli7aos4tyAgMOrw6tBVpk5rPA9rz1HB6Wn+siLUizMFl3TKpn7s1pJGcCba3pGnanMUNO8OP+EwaMdppACpwb6vbqSpeUbgICAgICAgID/2Q==";

$image=base64_decode($imagedata);

// Create Imagick object
$im = new Imagick();

// Convert image into Imagick
$im->readImageBlob($image);

//Set the output format
$im->setImageFormat("png");

header('Content-type: image/png');

echo $im;

我读过可以使用ImageMagick增加DPI . 看这里http://www.imagemagick.org/discourse-server/viewtopic.php?t=18241

如何在我的PHP脚本中实现这一点(不是通过命令行)?任何帮助和指导将非常感谢 .

1 回答

  • 2

    如果你看一下UK Government website for the Passport Office,它说护照照片需要至少600px宽,750px高 .

    让我们先从600x750的Bean先生那张足够质量(如果不是内容)的照片开始:

    如果我们现在将他的大小调整为与你的图像(160x200)相同,那么备份你将看到质量已经因为试图以160x200表示图像并且你无法发明所有丢失的像素 - 它们已经消失了好 . 看看他的牙齿和他眼中的亮点:

    convert bean.jpg -resize 160x200 -resize 600x750 result.jpg
    

    那么,你在Imagick所能做的就是:

    Imagick::resizeImage ( int $columns , int $rows , int $filter , float $blur [, bool $bestfit = FALSE [, bool $legacy = FALSE ]] )
    

    返回到600x750并尝试将过滤器设置为 CatromLanczos . 但你可以't invent stuff that isn'那里......

相关问题