我不关心将RAW转换为JPEG格式的解决方案是否使用ImageMagick,它似乎是最多的,所以我从那里开始。
我已成功将JPEG转换为不同大小的JPEG,但无法将RAW转换为JPEG。看了Convert RAW photos to JPEG in linux/php之后,我尝试了这段代码:
try {
$im = new Imagick($inputURL);
$im->setimageformat("jpg");
$im->writeimage($outputURL);
$im->clear();
$im->destroy();
} catch (Exception $e) {
echo $e;
}
并收到此错误:
exception 'ImagickException' with message 'unable to open image `/tmp/magick-XXaana6Q.ppm': No such file or directory @ blob.c/OpenBlob/2480' in /UPSTREAM/public_html/core/functions.php:116 Stack trace: #0 /UPSTREAM/public_html/core/functions.php(116): Imagick->__construct('/UPSTREAM/p...') #1 /UPSTREAM/public_html/core/functions.php(129): resizeImage('/UPSTREAM/p...', '/UPSTREAM/p...', Array) #2 {main}
然后我尝试了:
exec("/usr/bin/convert -define jpeg:size=1280x720 {$inputURL} {$outputURL}");
基于底部附近的相同帖子,但它不会生成任何文件。
然后我尝试raw to JPEG conversion,但我也没有运气。然后我用Convert PDF to JPEG with PHP and ImageMagick对其进行了修改,但无济于事(编辑:我收到与上面相似的错误):
try {
$im = new Imagick();
$im->setResolution(300,300);
$im->readimage($inputURL);
$im->setimageformat("jpg");
$im->writeimage($outputURL);
$im->clear();
$im->destroy();
} catch (Exception $e) {
echo $e;
}
对于踢球,这些是我尝试过的变种:
//echo "/usr/bin/convert {$inputURL} -resize {$dimensions[0]}x{$dimensions[1]} {$outputURL}";
#phpinfo();
#exec("/usr/bin/convert {$inputURL} -resize {$dimensions[0]}x{$dimensions[1]} {$outputURL}");
#exec("/usr/bin/convert {$inputURL} -define {$dimensions[0]}x{$dimensions[1]} {$outputURL}");
#exec("/usr/bin/convert -resize {$dimensions[0]}x{$dimensions[1]} rgb:{$inputURL} {$outputURL}");
#exec("/usr/bin/convert -define jpeg:size=1280x720 {$inputURL} {$outputURL}");
(可能)相关详细信息:
/usr/bin/convert
等同于convert
。.ARW
扩展名