标签: imagemagick

如何将彩色pdf转换为黑白?

我想将带有一些彩色文本和图像的 pdf 转换为另一个只有黑白的 pdf,以减少其尺寸。此外,我想将文本保留为文本,而无需转换图片中的页面元素。我尝试了以下命令:

convert -density 150 -threshold 50% input.pdf output.pdf
Run Code Online (Sandbox Code Playgroud)

在另一个问题中找到了一个链接,但它做了我不想要的:输出中的文本被转换成一个糟糕的图像并且不再可选。我尝试使用 Ghostscript:

gs      -sOutputFile=output.pdf \
        -q -dNOPAUSE -dBATCH -dSAFER \
        -sDEVICE=pdfwrite \
        -dCompatibilityLevel=1.3 \
        -dPDFSETTINGS=/screen \
        -dEmbedAllFonts=true \
        -dSubsetFonts=true \
        -sColorConversionStrategy=/Mono \
        -sColorConversionStrategyForImages=/Mono \
        -sProcessColorModel=/DeviceGray \
        $1
Run Code Online (Sandbox Code Playgroud)

但它给了我以下错误消息:

./script.sh: 19: ./script.sh: output.pdf: not found
Run Code Online (Sandbox Code Playgroud)

有没有其他方法可以创建文件?

bash pdf imagemagick ghostscript color-management

24
推荐指数
2
解决办法
4万
查看次数

从蒙太奇 (ImageMagick) 合成图像中删除额外的图块空间?

我有一堆照片。它们的高度都相同,我试图通过 Bash 使用 ImageMagick 的蒙太奇程序将它们组合成一个合成图像。问题是,默认情况下,tile 大小(一个图像占用一个 tile)等于具有最大尺寸的图像。因此,窄图像被大量空白包围。我想删除这个空白区域。我该怎么做?

bash imagemagick image-manipulation

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

如何使用imagemagick旋转目录中的所有图像?

我想旋转与模式匹配的目录中的所有图像。

到目前为止,我有:

for file in `ls /tmp/p/DSC*.JPG`; do
  convert $file -rotate 90 file+'_rotated'.JPG
done
Run Code Online (Sandbox Code Playgroud)

但这没有输出?

shell-script imagemagick image-manipulation wildcards

21
推荐指数
5
解决办法
3万
查看次数

将当前目录中的每个pdf转换为png

我想写一个bash脚本把.pdf当前目录下的每个文件都转换成一个.png文件。例如:

$ls .
a.pdf b.pdf
$./pdf2png.sh
Converting pdfs to pngs
a.pdf -> a.png
b.pdf -> b.png
Run Code Online (Sandbox Code Playgroud)

这是我最好的尝试:

#!/bin/bash
convert -verbose -density 500 -resize '800' a.pdf a.png
convert -verbose -density 500 -resize '800' b.pdf b.png
Run Code Online (Sandbox Code Playgroud)

bash imagemagick

20
推荐指数
3
解决办法
3万
查看次数

如何拍摄我的 Xvfb 缓冲区的屏幕截图?

我正在使用亚马逊 Linux。我想在我的 node.js Selnium 测试中运行一个无头 Chrome 浏览器。所以我像这样启动我的 Xvfb 服务器......

if ! pidof /usr/bin/Xvfb; then Xvfb :0 -screen 5 1024x768x8 & fi
Run Code Online (Sandbox Code Playgroud)

但是,当我在测试失败后尝试截取屏幕截图时,

DISPLAY=:0 import -window root /tmp/screenshot.png
Run Code Online (Sandbox Code Playgroud)

我收到下面提到的错误...

+ DISPLAY=:0
+ import -window root /tmp/screenshot.png
import: unable to open X server `:0' @ error/import.c/ImportImageCommand/369.
Run Code Online (Sandbox Code Playgroud)

如何截取 Xvfb 缓冲区的屏幕截图?

chrome screenshot imagemagick xvfb display

20
推荐指数
1
解决办法
7747
查看次数

使用 ImageMagick 创建 PDF 的限制超过 2 GB

我正在使用convert大约 2,000 张图像创建一个 PDF 文件:

convert 0001.miff 0002.miff ... 2000.miff -compress jpeg -quality 80 out.pdf
Run Code Online (Sandbox Code Playgroud)

当输出文件达到 2^31-1 字节 (2 GB ?1) 和消息时,该过程终止可重现

convert: unknown `out.pdf'.
Run Code Online (Sandbox Code Playgroud)

PDF 文件规范允许 ?10 GB。我试图从 中提取更多信息-debug all,但在日志输出中没有看到任何有用的信息。文件系统是ext3,它允许文件至少高达 16 GiB(可能更多)。至于ulimitfile sizeunlimited/etc/security/limits.conf只包含注释掉的行。还有什么可能导致这种情况,如何增加限制?

ImageMagick 版本:6.4.3 2016-08-05 Q16 OpenMP
发行版:SLES 11.4 (i586)

linux imagemagick limit

19
推荐指数
2
解决办法
2785
查看次数

如何创建包含多个图像的 ico 文件

我可以使用 ImageMagick 将 png 转换为 ico,但是(我认为,不确定)它会为我指定的大小为每个 ico 文件创建一个图像。

convert favicon.png -resize 32 favicon.ico
Run Code Online (Sandbox Code Playgroud)

一个 ico 文件可以包含 2 或 3 张 16x16、32x32 和 64x64 像素的图像。

是否可以使用 ImageMagick 或其他工具创建这样的图标?

icons imagemagick

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

设置默认pdf阅读器

当我安装快门来截屏时,imagemagick 将自己设置为默认的 PDF 阅读器,我无法更改它。

我想拥有evince默认的 PDF 阅读器。

我尝试在文件资源管理器中右键单击 PDF 文档-> 属性-> 设置默认应用程序-> Evince。

这不起作用,imagemagick 保持默认。使用以 root 身份打开的文件资源管理器执行此操作,但不会更改普通用户的默认应用程序。

使用 xdg-mime 也无济于事。在/etc/gnome/defaults.list对PDF的默认应用程序evince

而且,当我删除 imagemagick-6.q16 时,它evince成为打开 PDF 的默认应用程序,但shutter也被删除了。

我错过了什么吗?我在哪里可以改变这种行为?

我的计算机中有 Debian Jessie 的更新版本,并且我使用的是 Gnome3。

编辑 1:

我可以用不同的文件浏览器复制这种行为(用nemo和测试nautilus

的输出XDG_UTILS_DEBUG_LEVEL=2 xdg-mime query default application/x-pdf

Checking /home/USER/.local/share//applications/mimeapps.list
Checking /usr/share/gnome/applications/defaults.list
Checking /usr/local/share//applications/defaults.list
Checking /usr/share//applications/defaults.list
Run Code Online (Sandbox Code Playgroud)

我检查了这个文件:

  • /home/USER/.local/share//applications/mimeapps.list我有一条线application/pdf=evince.desktop
  • /usr/share/gnome/applications/defaults.listPDF 阅读器中也设置为 evince。
  • /usr/local/share/applications/defaults.list有到PDF文件没有提及。
  • /usr/share/applications/defaults.list 不存在

debian imagemagick gnome3

17
推荐指数
3
解决办法
2万
查看次数

如何用更少的按键输入多个文件名

如果我想使用 imagemagick将 a 转换pdfpng图像,我会执行以下操作:

convert -trim -density 400 this_is_a_very_long_filename_of_my_pdf_file.pdf this_is_a_very_long_filename_of_my_pdf_file.png
Run Code Online (Sandbox Code Playgroud)

由于某些原因,pdf 文件通常具有很长的文件名,我希望该png文件具有相同的名称,但扩展名除外。

一般我选择this_is_a_very_long_filename_of_my_pdf_file.pdf经由标签两次,zsh-menu然后更改pdfpng手动为第二个参数。

但是有没有更快的方法来做到这一点?

command-line zsh imagemagick

16
推荐指数
3
解决办法
800
查看次数

webp 动画到 gif 动画 (cli)

今天我很惊讶地发现从webp动画到gif动画显然是多么困难。我GIMP 2.8.22ImageMagick 7.0.7-21linux 4.14.13-1-ARCH似乎并不支持该格式,唯一的工具,回购可似乎是libwebp 0.4.1其中包括一个解码工具,可以让您提取单个帧的一些图像格式,他们都不是GIF的(这是一个授权问题可能? )

无论如何,我使用了以下脚本:

#!/bin/bash

DELAY=${DELAY:-10}
LOOP=${LOOP:-0}
r=`realpath $1`
d=`dirname $r`
pushd $d > /dev/null
f=`basename $r`
n=`webpinfo -summary $f | grep frames | sed -e 's/.* \([0-9]*\)$/\1/'`
pfx=`echo -n $f | sed -e 's/^\(.*\).webp$/\1/'`
if [ -z $pfx ]; then
    pfx=$f
fi

echo "converting $n frames from $f 
working dir $d
file stem '$pfx'"

for ((i=0; i<$n; i++)); do
    webpmux -get frame $i $f …
Run Code Online (Sandbox Code Playgroud)

arch-linux imagemagick gif animation webp

16
推荐指数
3
解决办法
2万
查看次数