我正在尝试使用Imagemagick将svg图像转换为eps.我能够使用Imagemagick转换图像,但与原始图像大小相比,图像尺寸太高,并且与svg相比内容显示不正确.
我有一大堆jpg图像,我想创建缩略图.图像都有不同的大小和分辨率,但我希望所有缩略图都有标准尺寸,例如120x80px.但是,我不想拉伸图像.所以我想做以下事情:
是否有linux命令可以这样做?我查看了imagemick转换,但我无法弄清楚如何进行居中裁剪.您似乎必须手动指定每个图像的裁剪区域?
有没有办法根据ImageMagick中的映射旋转图像?该问题类似于位移映射,但是不是基于地图中的亮度/色度来扭曲和变形形状,而是基于地图旋转图像.
例如:如果我有一个模式,然后应用色度/亮度图形状,它将旋转模式并根据中点(50%)的亮度/色度差异输出它.
像这样:

我的任务是创建一组相当复杂的形状,并在它们的色度/亮度的不同角度将图案映射到它们.
这将是我必须编写的某种自定义插件,还是在IM 6中有一个简单的方法?
非常感谢!
imagemagick image-processing node-imagemagick imagemagick-convert
我正在尝试根据图像的"饱和度"为图像赋值,以查看图像是黑白还是彩色.我正在使用Imagick,并且发现了似乎是命令行的完美代码,并尝试使用PHP库复制它.
我想我理解这个概念:
convert '$image_path' -colorspace HSL -channel g -separate +channel -format '%[fx:mean]' info:
Run Code Online (Sandbox Code Playgroud)
$imagick = new Imagick($image_path);
$imagick->setColorspace(imagick::COLORSPACE_HSL);
print_r($imagick->getImageChannelMean(imagick::CHANNEL_GREEN));
Run Code Online (Sandbox Code Playgroud)
但是,我的PHP代码不会输出与命令行代码相同的值.例如,灰度图像提供0命令行代码,但PHP代码给出[mean] => 10845.392051182 [standardDeviation] => 7367.5888849872.
同样,另一灰度图像给出了0对[mean] => 31380.528443457 [standardDeviation] => 19703.501101904.
彩色图像给出了0.565309对比[mean] => 33991.552881892 [standardDeviation] => 16254.018540044.
在不同的值之间似乎没有任何类型的模式.我做错了什么吗?
谢谢.
刚才补充一下,我也试过这个PHP代码
$imagick = new Imagick($image_path);
$imagick->setColorspace(imagick::COLORSPACE_HSL);
$imagick->separateImageChannel(imagick::CHANNEL_GREEN);
$imagick->setFormat('%[fx:mean]');
Run Code Online (Sandbox Code Playgroud)
但是Unable to set format当我尝试设置格式时出现错误.我也试过setFormat('%[fx:mean] info:'),setFormat('%[mean]'),setFormat('%mean'),等.
我想用ImageMagick在图像文件上添加一些文字,
这就是我输入的内容:
convert -font Verdana label:"Text 123" pic.jpg pic_new.jpg
但它返回如下错误:
Fontconfig warning: ignoring UTF-8: not a valid region tag
生成的图片没有添加任何测试.
我用谷歌搜索,但大多数帖子都没有多大帮助.
感谢您的任何提示!
我正在尝试将图像大小调整为给定宽度,高度按比例调整 - 无论图像是横向还是纵向.
我有两个图像我测试了ImageMagick convert -resize命令和我读过的内容,我希望以下内容适用于任何类型的图像:
convert source.jpg -resize 200 out.jpg
问题是,它没有.这是我的结果:
landscape,3264?×?2448调整大小以200?×?150==> WORKSportrait,, 3240?×?4320调整为150?×?200==> 失败现在,我知道我可以通过预先读取源图像尺寸并对命令进行调整来修复此问题(例如,使用x200 for portrait似乎将宽度正确设置为200)但我不禁认为必须有让ImageMagick处理这个的方法.
我阅读了文档并搜索了答案,但似乎无法解决这个问题.任何帮助是极大的赞赏.
编辑:
我尝试了以下变化,但得到了相同的错误结果:
convert source.jpg -resize 200x out.jpg
FIX:
convert source.jpg -auto-orient -resize 200 out.jpg
我想加快以下命令:
convert -limit memory 64 -limit map 128 -antialias -delay 1x2 final/*.png movie.mp4
Run Code Online (Sandbox Code Playgroud)
我看过其他博客文章,其中并行和转换一起使用,所以我想知道如何使它与上面的命令一起使用.
我有100个PNG文件,每个都是8250x4090大.我需要将它们与Imagemagick一起附加到一个大的PNG文件(82500 x 40900),这样我就有10行10列.我知道代码必须如何,但我得到错误:convert.exe:无法扩展缓存
`C:\Row_345.png': No space left on device @ error/cache.c/OpenPixelCache/3689.
convert.exe: Memory allocation failed `C:\Row_345.png' @ error/png.c/WriteOnePNGImage/8725.
Run Code Online (Sandbox Code Playgroud)
第一个问题:需要多少空间(大约)?我有8 GB的Ram和30 GB的免费SSD,这还不够.这些图片包含多达5种不同颜色的多边形和线条.最大的PNG是300 KB)第二个问题:有没有办法让它变得更聪明,以至于它不会占用那么多空间?
我正在尝试将.ppm文件的200个.jpg文件转换为一个.mp4文件.
在与.jpg文件相同的目录中,我运行了以下代码:
convert -delay 6 -quality 95 test*ppm movie.mp4
Run Code Online (Sandbox Code Playgroud)
并收到此错误消息:
convert: no images defined `movie.mp4' @ error/convert.c/ConvertImageCommand/3210.
Run Code Online (Sandbox Code Playgroud)
是什么导致了这个错误
在Windows下,我需要在Q8和Q16之间进行选择。我知道Q8是每像素8位(例如8位红色,8位绿色等),而Q16是每像素16位。我也知道Q16使用的内存是Q8的两倍。因此,我必须仔细选择。
什么是每像素16位?jpeg图像是否支持每像素16位?从智能手机中的数码相机拍摄的照片会导致每像素8位还是每像素16位?
我只需要加载jpg图像,对其进行裁剪/调整大小并保存。我还需要将图片保存为2个不同的变体:一个包含icc颜色配置文件管理,另一个不包含任何icc配置文件(sRGB)