标签: imagemagick

如何在启用快速 Web 查看的情况下从 imagemagick 生成 PDF?

我使用 ImageMagick 将一堆图像整理成一个 PDF。虽然这可以正常工作,但当我在浏览器上打开 PDF 并转到属性时,它显示该文件未启用快速 Web 查看,这使得它要等到整个文件加载完毕才能显示任何内容。

ImageMagick 可以做到这一点吗?

windows browser pdf preview imagemagick

4
推荐指数
1
解决办法
525
查看次数

使用 ImageMagick 替换颜色,无论现有像素不透明度如何

我有一个彩色图像,其中有很多现有的透明背景,但也有一些rgb(255,0,255)我想另外变得透明的亮粉色块。

我这样做是这样的:

convert 0001.png -fuzz 15% -fill transparent -transparent "rgb(255,0,255)" result.png
Run Code Online (Sandbox Code Playgroud)

问题是,因为原始图像是抗锯齿的,所以仍然有一个亮粉色光晕,它与例如rgba(255,0,255, 50 )和其他部分透明的值不匹配,除非我把速度调得-fuzz太高。

所以我想我会这样解决这个问题:

convert 0001.png -fuzz 15% -fill transparent
-transparent "rgba(255,0,255,0)"
-transparent "rgba(255,0,255,64)"
-transparent "rgba(255,0,255,128)"
-transparent "rgba(255,0,255,192)"
-transparent "rgba(255,0,255,255)"
result.png
Run Code Online (Sandbox Code Playgroud)

...但是对不同程度的不透明度的额外调用-transparent似乎没有任何额外的效果。

几乎就像在进行匹配之前调用 -transparent 截断我的rgba(255,0,255,128)to (尽管仍然查看不透明度,但似乎总是从 255 开始这样做,而不是从我传入的不透明度开始)。rgb(255,0,255)-fuzz-transparent

如何替换 color 的所有示例RGB(255,0,255),而不考虑像素预先存在的 alpha?

这是我正在使用的图像:

在此输入图像描述

这就是我留下的内容,我想删除:(放大并给出白色背景以便于查看) 在此输入图像描述

imagemagick image-processing

4
推荐指数
1
解决办法
198
查看次数

ImageMagick 的“转换”不会设置分辨率?

我正在尝试使用 imagemagick 的“转换”创建图像。

我有这个命令:

转换-尺寸720x480 xc:白色-单位像素每英寸-密度81x72 foo.jpg

但是,图像最终的分辨率为 72x72,而不是 81x72。

识别-verbose foo.jpg
图片:foo.jpg
  格式:JPEG(联合图像专家组JFIF格式)
  类:伪类
  几何尺寸:720x480+0+0
  分辨率:72x72
  打印尺寸:10x6.66667

当我使用convert-resample 81x72不是运行时-density,我得到了正确的解决方案。为什么是这样?

resolution imagemagick

3
推荐指数
1
解决办法
7599
查看次数

将命令行中的图像转换为控制台流

我正在寻找类似 ImageMagick 的“转换”但输出到控制台的东西。

显而易见的答案是“创建一个临时文件并创建它”,但我不希望遇到麻烦。

是否有任何 linux 实用程序可以执行此操作?

linux command-line imagemagick conversion

3
推荐指数
1
解决办法
1438
查看次数

在保留 alpha 通道的同时将 BMP 转换为 PNG

我有一个以 BMP 格式存储的图像,并想使用 imagemagick 将其转换为 PNG。

我在十六进制查看器中查看了像素,注意到它们以 32bpp 存储,因此有一个 alpha 通道。透明像素具有 RGBA 值 (255, 255, 255, 0),paint.NET 将它们拾取为白色像素,可能是因为它不希望 BMP 具有透明像素?

无论如何,我使用的命令是

convert -alpha on -quality 95 in.bmp out.png
Run Code Online (Sandbox Code Playgroud)

但是,当我在 Paint.NET 中打开生成的图像(通常会正确解释透明像素)时,这些透明像素仍然是白色的。

我是否错误地转换了图像?我希望 alpha 值为 0 的像素在我常用的图像编辑器中显示为透明。

imagemagick images

3
推荐指数
1
解决办法
3036
查看次数

ImageMagick:将 PDF 转换为 JPG 时尺寸错误

我想对 pdf 应用一些改进(更改亮度、对比度等),使其更具可读性,所以我选择了 ImageMagick 和 pdftk。我用下面的命令把pdf分割成几个单页的pdf文件,这样我就可以一次对ImageMagick一个文件进行操作。

pdftk a.pdf burst output %04d.pdf
Run Code Online (Sandbox Code Playgroud)

此时,一切正常。我使用其中一个文件(例如 0038.pdf)进行测试。例如,为了调整对比度,我使用了这个命令:

convert 0038.pdf -quality 100 -density 300 -brightness-contrast 0x10% out.pdf
Run Code Online (Sandbox Code Playgroud)

但这是结果:

原来的

原pdf

转换

转换后的pdf

我尝试更改质量、密度、大小、调整大小、几何形状的值,输出 pdf 具有不同的大小/分辨率,但始终无法读取。所以我意识到问题出在转换的上游。似乎从 .pdf 文件中错误地读取了输入的 pdf 大小和分辨率convert

事实上,当我输入这个命令时:

convert -verbose 0038.pdf out.pdf
Run Code Online (Sandbox Code Playgroud)

我得到:

/tmp/magick-9894W9c_JPl1I7QV1 PNG 380x482 380x482+0+0 8-bit sRGB 128KB 0.010u 0:00.010
0038.pdf PNG 380x482 380x482+0+0 16-bit sRGB 128KB 0.000u 0:00.000
0038.pdf=>out.pdf PNG 380x482 380x482+0+0 16-bit sRGB 125KB 0.050u 0:00.049
[ghostscript library] -q -dQUIET -dSAFER -dBATCH -dNOPAUSE -dNOPROMPT -dMaxBitmap=500000000 -dAlignToPixels=0 -dGridFitTT=2 "-sDEVICE=pngalpha" -dTextAlphaBits=4 …
Run Code Online (Sandbox Code Playgroud)

linux pdf ghostscript imagemagick pdftk

3
推荐指数
1
解决办法
2416
查看次数

无需重新编码即可更改 JPEG 中的 DPI?使用 ImageMagick 或其他东西

有时我有我想要包含某个 DPI 设置的图像文件。请注意,我的意思只是 DPI 值,即图像元数据中的值。我不想调整实际图像的大小。因此,例如,更高的 DPI 将导致以厘米为单位的更小尺寸,以及相同数量的像素。

我知道我可以使用convert带有-density参数的ImageMagick 设置或更改图像的 DPI ,但这会重新编码图像。我想避免这种情况。

有没有办法,使用 ImageMagick 或其他东西(例如 ExifTool 或其他东西)来显式设置 JPEG 的 DPI 值而不更改实际的压缩图像内容本身?

请注意,我正在使用 OS X 并寻找一个命令行工具来执行此操作(我想在 shell 脚本中使用它)。

metadata dpi jpeg imagemagick exiftool

3
推荐指数
1
解决办法
4575
查看次数

从 GIF 到 PNG 的转换不起作用

我正在寻找一种方法将动画 GIF 分解为组成它的图像,并发现许多线程推荐:

convert -coalesce Dijkstra_Animation.gif djik.png
Run Code Online (Sandbox Code Playgroud)

我运行了这个命令,但它失败了。它只产生一个文件 ( djik.png) 来启动,虽然它的扩展名是.png,但它实际上是输入的 GIF... 出了什么问题?如何将多帧 GIF 分解为单个帧?

imagemagick image-conversion

3
推荐指数
1
解决办法
4211
查看次数

调整图像大小时,Imagemagick 会杀死颜色质量

我正在尝试通过 imagemagick 调整一堆(450+)图像的大小,它们都从 500x500 开始,我已经编写了一个脚本来将它们调整为大约 5 种不同的大小。

现在我已经转换了它们,我注意到颜色质量受到了明显的影响。有什么我可以改变我的命令来提高质量的吗?

命令: convert input.jpg[0] -background black -density 72 -resize 440x440 -quality 100 -strip output.jpg

我无法上传实际文件,但这是一个裁剪版本(带填充)

原来的:
在此处输入图片说明

图像魔法:
在此处输入图片说明

jpeg imagemagick

2
推荐指数
1
解决办法
3193
查看次数

Windows 版 ImageMagick 未将 OpenCL 列为已启用

我正在尝试resize使用 ImageMagick进行 GPU 加速操作。

在我的 Windows 机器上,convert -list configure只使用列表FEATURES OpenMP而不是OpenCL我预期的,因为我安装了 NVidia CUDA GPU。

还有什么我必须做的吗?

在生产中,我们将使用 Linux。我是否还需要做一些额外的事情才能启用硬件加速?

windows linux opencl imagemagick

2
推荐指数
1
解决办法
2206
查看次数