每个用户都可以上传100张TIFF(黑白)图像.
该过程需要:
转换tif为jpg.
将图像大小调整为xx.
将图像裁剪为200px.
添加文本水印.
这是我的PHP代码:
move_uploaded_file($image_temp,$destination_folder.$image_name);
$image_name_only = strtolower($image_info["filename"]);
$name=$destination_folder.$image_name_only.".jpg";
$thumb=$destination_folder."thumb_".$image_name_only.".jpg";
$exec = '"C:\Program Files\ImageMagick-6.9.0-Q16\convert.exe" '.$destination_folder.$image_name. ' '.$name.' 2>&1';
exec($exec, $exec_output, $exec_retval);
$exec = '"C:\Program Files\ImageMagick-6.9.0-Q16\convert.exe" '.$name. ' -resize 1024x '.$name;
exec($exec, $exec_output, $exec_retval);
$exec = '"C:\Program Files\ImageMagick-6.9.0-Q16\convert.exe" '.$name. ' -thumbnail 200x200! '.$thumb;
exec($exec, $exec_output, $exec_retval);
$exec = '"C:\Program Files\ImageMagick-6.9.0-Q16\convert.exe" '.$name. " -background White label:?.?12355 -append ".$name;
exec($exec, $exec_output, $exec_retval);
Run Code Online (Sandbox Code Playgroud)
这段代码有效.但每张图像的平均处理时间为1秒.因此,对于100张图像,它可能需要大约100秒.
如何加快整个过程(转换,调整大小,裁剪,水印)?
编辑
我有一个服务器G8:Ram:32G,CPU:Intel Xeon E5-2650(4个进程)
版本:ImageMagick 6.9.0-3 Q16 x64
特点:OpenMP的
convert logo: -resize …Run Code Online (Sandbox Code Playgroud) 我正在运行以下内容:
convert '/var/www/Standard Features.tif' '/var/www/Standard Features.jpg'
Run Code Online (Sandbox Code Playgroud)
出于某种原因,我正在创建 2 个文件:
-rw-r--r-- 1 root root 31809 Jan 27 23:53 Standard Features-0.jpg
-rw-r--r-- 1 root root 20899 Jan 27 23:53 Standard Features-1.jpg
Run Code Online (Sandbox Code Playgroud)
为什么会发生这种情况,我怎样才能让它停止?我似乎无法弄清楚为什么会发生这种情况。我尝试过更改选项和所有内容,但似乎没有任何效果。
我想使用 ImageMagick 将 pdf 文件转换为黑白 PDF 文件。但是我有两个问题:我使用这个命令:
convert -colorspace Gray D:\in.pdf D:\out.pdf
Run Code Online (Sandbox Code Playgroud)
-density 300选项,文件大小增加了一倍多。所以我想使用相同的DPI设置,但如何使用?非常感谢
我正在使用 ImageMagick 将 PDF 文件转换为图像。然而,一些 PDF 有多个页面,这被证明是一个真正的问题。
我的本地转换如下。
exec("\"C:\\Program Files (x86)\\ImageMagick-6.8.5-Q16\\convert.exe\" -density 300 -quality 75 \"{$path}{$filename}{$ext}[$page]\" \"{$targetFile}\"");
Run Code Online (Sandbox Code Playgroud)
如果我[$page]从 exec 中删除它可以工作,但会为每页创建一个图像,这不是我想要的。
我一直在寻找一段时间,但我已经没有希望和想法了。有什么办法可以将所有新图像都转换为一张最终图像,或者将 PDF 直接转换为一张图像?任何帮助将不胜感激,干杯。
我想根据好的favicon 备忘单创建多文件 favicon.ico 。
我创建了 3 个 .png 文件,使用 OptiPNG 对其进行了优化,并收到了 1、2 和 3kb 大小的文件。
现在我正在尝试使用 Imagemagick 从它们创建 favicon.ico 但最终文件大约为 15kb(组件文件的总和大约为 6kB)。
是什么导致了这种影响,我该如何避免?
我网站的一些用户希望能够将 gif 图像上传到他们的个人资料中。我允许这样做,但是...一些 gif 文件非常大 - 1-2 MB 甚至更多,在单个页面上创建带有 20 x 1 MB gif 动画的画廊并不是一个好主意。如果我使用 ImageMagick 创建缩略图,缩略图也会被动画化,我会从 1 MB 文件中获得约 600 KB 的缩略图。太多了,缩略图处理需要很长时间。
有什么方法可以创建动画 gif 文件的静态缩略图,以便仅在用户单击缩略图时加载动画文件?
谢谢。
解决了
我有一堆标有 1.png 等的文件。我正在使用以下命令行生成 gif 动画:
convert -delay 20 *.png animation.gif
Run Code Online (Sandbox Code Playgroud)
但是帧会按顺序叠加。我没想到这种行为,可能有什么问题?
谢谢
编辑
正如 Mark 所指出的,我的 png 文件是透明的。
我正在使用https://www.npmjs.com/package/pdf-image。
var PDFImage = require("pdf-image").PDFImage;
var pdfImage = new PDFImage("brochure.pdf");
pdfImage.convertPage(0).then(function (imagePath) {
// 0-th page (first page) of the slide.pdf is available as slide-0.png
fs.existsSync("slide-0.png") // => true
},function(err){
console.log(err);
});
Run Code Online (Sandbox Code Playgroud)
但我收到这个错误
{ message: 'Failed to convert page to image',
error:
{ [Error: Command failed: /bin/sh -c convert 'brochure.pdf[0]' 'brochure-0.png'
/bin/sh: 1: convert: not found
]
killed: false,
code: 127,
signal: null,
cmd: '/bin/sh -c convert \'brochure.pdf[0]\' \'brochure-0.png\'' },
stdout: '',
stderr: '/bin/sh: 1: convert: not found\n' …Run Code Online (Sandbox Code Playgroud) 我尝试执行以下命令:
$ convert 1.png -filter 'Jinc ( +clone -negate -morphology Distance Euclidean -level 50%,-50% )' -morphology Distance Euclidean -compose Plus -composite -level 43%,57% -resize 12.5% 1.png
Run Code Online (Sandbox Code Playgroud)
它给了我:
转换:没有定义图像`1.png'@error/convert.c/ConvertImageCommand/3187。
但它是存在的!我尝试在启用调试选项的情况下执行该命令:
$convert 1.png -filter 'Jinc ( +clone -negate -morphology Distance Euclidean -level 50%,-50% )' -morphology Distance Euclidean -compose Plus -composite -level 43%,57% -resize 12.5% 1.png -debug all
Run Code Online (Sandbox Code Playgroud)
我得到这个输出:http : //pastebin.com/gsw7KszH
我的 ImageMagick 的配置有什么问题?我使用最新的 macOS。