AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / computer / 问题

问题[imagemagick](computer)

Martin Hope
Ellen Spertus
Asked: 2025-01-16 05:21:35 +0800 CST

为什么 ImageMagick mogrify 没有按照预期在原地裁剪图片?

  • 6

我想就地裁剪目录中的所有图像。这将创建一个文件的裁剪副本:

magick slide.jpg -crop 1700x1100+0+550 slide-cropped.jpg

我认为我可以用以下命令做出相同的更改:

magick mogrify slide.jpg -crop 1700x1100+0+550 

虽然这确实修改了文件slide.jpg(如图所示ls -l),但它不会裁剪它。

有没有办法利用 magick 来裁剪文件?

我在 OS X Sequoia 上使用 ImageMagick 7.1.1-43 Q16-HDRI x86_64 22550。

imagemagick
  • 1 个回答
  • 36 Views
Martin Hope
Dan Herbert
Asked: 2024-02-24 01:18:45 +0800 CST

如何让 ImageMagick 将灰度 png 转换为 ico 文件而不出现错误?

  • 6

我有一个灰度 PNG,当尝试使用 ImageMagick(版本 7.1.1-28)创建ICO 文件时,它总是给出以下警告:

$ convert favicon.png -define icon:auto-resize=16,32,48,64,256 favicon.ico
convert: Cannot write image with defined png:bit-depth or png:color-type. `' @ warning/png.c/MagickPNGWarningHandler/1526.

我认为这可能是我原始 PNG 的颜色配置文件,所以我尝试使用 ImageMagick 将图像(也许我的假设在这里不正确?)首先强制为 RGB 颜色空间,然后从该中间文件制作 ICO 文件,但得到了确切的结果同样的错误。

$ convert favicon.png +profile "*" -colorspace RGB ico-temp.png
$ convert ico-temp.png -define icon:auto-resize=16,32,48,64,256 favicon.ico
convert: Cannot write image with defined png:bit-depth or png:color-type. `' @ warning/png.c/MagickPNGWarningHandler/1526.

我在这里做错了什么?我可以添加任何标志来完成这项工作吗?


对于任何想要尝试复制的人,我发现任何灰度 SVG 或 PNG 转换为 ICO 文件都会出现此错误。这是我为重现此内容而制作的 SVG 示例(如果您使用此源将其转换为 PNG,也可以使用):

<svg xmlns="http://www.w3.org/2000/svg" 
    width="100mm" 
    height="100mm" 
    viewBox="0 0 100 100">
  <circle cx="25" cy="75" r="20" style="fill:#ccc"/>
  <circle cx="65" cy="35" r="30" style="fill:#4d4d4d"/>
</svg>
imagemagick
  • 1 个回答
  • 30 Views
Martin Hope
Lance
Asked: 2024-02-05 18:03:23 +0800 CST

为什么这个 PNG 在 imagemagick 中转换为黑色 JPG?

  • 5

我发誓这张图片已正确转换为带有黑色线条艺术的白色背景 JPG。这是原始 PNG(以防 SE 在您上传时更改它)。它看起来是这样的:

但这是我在执行此操作时看到的 JPG convert fire.png fire.jpg:

再次,我在某个时候成功地将这个透明 PNG 转换为白色背景 JPG,使用这个精确的 PNG 输入图像。但现在不行了。我能想到的唯一改变是我将其保存在 GitHub 分支中,创建了一个新的 GitHub 分支,将文件移动到新文件夹中,提交并合并回主分支。那么也许 Git 中的二进制图像以某种奇怪的方式发生变化?

另一件事是,它是否与图像所在的文件夹或它们所在的文件路径有关?

convert ../external-directory/fire.png ./local-directory/fire.jpg
convert /absolute/path/fire.png ./local-directory/fire.jpg
convert "/absolute/path/fire.png" "./local-directory/fire.jpg"

我在不同的文件路径中尝试了几个带/不带引号的组合,但没有任何变化。

知道出了什么问题以及如何解决吗?也许我失去了理智,因为图像是透明的,这就是造成问题的原因。但我发誓这之前已经成功转换了。

我使用的是装有 ImageMagick 7.1.1-27 的 Mac M3。

imagemagick
  • 2 个回答
  • 39 Views
Martin Hope
Zakikun
Asked: 2024-01-06 19:52:08 +0800 CST

将 WebP 文件转换为 GIF 无法按预期工作。生成的 GIF 有问题

  • 5

我运行命令将 WEBP 转换为 GIF,但它有点“故障”。我错过了什么吗?

  • 德班:11.8
  • ImageMagick:6.9.11-60 Q16 x86_64 2021-01-25
convert -delay 10 sample.webp -loop 0 -layers optimize animation.gif
  • 原始webp文件。

  • 转换后的gif文件。

    转换后的 gif 文件。

另一个演示示例与Rainbow Nyan cat一样运行良好。

imagemagick
  • 1 个回答
  • 36 Views
Martin Hope
Jamin Grey
Asked: 2023-11-22 13:55:11 +0800 CST

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

  • 9

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

我这样做是这样的:

convert 0001.png -fuzz 15% -fill transparent -transparent "rgb(255,0,255)" result.png

问题是,因为原始图像是抗锯齿的,所以仍然有一个亮粉色光晕,它与例如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

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

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

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

这是我正在使用的图像:

在此输入图像描述

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

imagemagick
  • 1 个回答
  • 170 Views
Martin Hope
user877329
Asked: 2022-09-06 22:08:17 +0800 CST

在不修改像素的情况下修改 PNG 图像的伽玛

  • 7

如何进行以下“转换”?

输入:

声称它是用 sRGB 编码的 PNG 图像,但实际上是线性的

输出:

具有与输入相同的像素值但标记为线性的 PNG 图像

这类作品(在输出图像中校正颜色):

convert -verbose -set colorspace RGB test_pattern_raw.png -depth 16 PNG64:test_pattern.png

但

$ identify test_pattern.png 
test_pattern.png PNG 1600x1000 1600x1000+0+0 16-bit sRGB 78821B 0.000u 0:00.000

它应该说 RGB 而不是 sRGB。

我也尝试过 EXR(根据定义是线性的),但 ImageMagick 坚持将 PNG:s 保存在 sRGB 中。

imagemagick
  • 1 个回答
  • 49 Views
Martin Hope
user985675
Asked: 2021-09-27 11:27:06 +0800 CST

ImageMagick 显示 WxH+x+y 窗口

  • 6

在 ImageMagick 的显示中,如果我按“c”并开始拖动裁剪框,左上方会出现一个小框,显示裁剪框的 WxH+x+y。

除了截取屏幕截图并在图像上运行 tesseract-ocr 等之外,还有什么方法可以在 bash 中以编程方式访问数据?

bash imagemagick
  • 1 个回答
  • 61 Views
Martin Hope
Danilo Bargen
Asked: 2021-07-23 23:50:11 +0800 CST

将 TIF 瓷砖拼接成大图像

  • 5

我有一个包含 25 个 TIF 图像(地图图块)的列表,每个图像大小约为 400 MiB(这里的每个小矩形):

在此处输入图像描述

我需要将它们拼接成一个巨大的 TIF。Linux下有没有可以做到这一点的命令?我可以为每个图块提供绝对 X/Y 坐标。

我使用montage命令(Imagemagick 的一部分)尝试了它,但它似乎只支持每行/列具有相同数量的图块的图块集。

linux imagemagick
  • 1 个回答
  • 194 Views
Martin Hope
Daniel R. Collins
Asked: 2021-06-15 18:26:25 +0800 CST

使用 Image Magick 将图像嵌入到固定画布中

  • 7

我正在 Image Magick 中寻找一个命令来获取任意图像(任何宽高比),并将其嵌入到固定大小的图像中,根据需要增大/缩小源图像以适应。

例如,宽源 Image1 生成以下结果:

在此处输入图像描述 在此处输入图像描述

高大的源 Image2 生成这个结果:

在此处输入图像描述 在此处输入图像描述

在每种情况下,最终图像的大小都是固定的,例如 400 x 300 像素。

(稍后将批量使用所需的命令来处理一系列不同初始尺寸的文件。)

与此相关问题相比:当前问题的不同之处在于它需要固定的最终图像大小,以及可能调整源图像的大小(而不是保持源图像不变,并在最后建立给定的纵横比)。


此时我已经查看了大约六个教程站点,但没有找到任何似乎解决这个特定用例的站点。以下是我迄今为止尝试过的示例。

首先,这是对先前批处理文件的修改,以使用变量进行特定的大小调整,但它仍然会产生成比例的输出,而不是固定的输出大小:

REM Fit image for "2 frames + large feature"

set /a fwidth = 870
set /a fheight = 980

setLocal enableDelayedExpansion

for %%a in (*.jpg) do (
  set outfile=%%~na-fit
  magick "%%a" -set option:wd "%%[fx:(%fwidth%/%fheight%)>(w/h)?(%fwidth%/%fheight%*h):w]" -set option:ht "%%[fx:(%fwidth%/%fheight%)>(w/h)?h:(w/(%fwidth%/%fheight%))]" -gravity center -background black -extent "%%[wd]x%%[ht]" "!outfile!%%~xa"
)

其次,尝试强制特定的输出大小,但它仅用于裁剪原始图像的一部分:

REM Fit image to wide format
REM For 5-frame show, 3:2 ratio

set /a fwidth = 300
set /a fheight = 200

SetLocal EnableDelayedExpansion

for %%a in (*.jpg) do (
  set outfile=%%~na-fit
  magick "%%a" -set option:wd "%fwidth%" -set option:ht "%fheight%" -gravity center -background black -extent "%%[wd]x%%[ht]" "!outfile!%%~xa"
)

第三,尝试使用“转换”运算符,最初使用固定百分比调整大小,但由于我无法检测到的原因而完全失败:

REM Fit image to wide format
REM For 5-frame show, 3:2 ratio

setLocal enableDelayedExpansion

for %%a in (*.jpg) do (
  set outfile=%%~na-fit
  magick convert "%%a" -resize 25%% "!outfile!%%~xa"
}

第四,针对固定输出大小对前面的调整进行调整,而不是输出大小,而是将源图像缩小到该大小的子集:

REM Shrink images to 25% via ImageMagick
REM E.g.: convert image.jpg -resize 25% image-small.jpg

SetLocal EnableDelayedExpansion

for %%a in (*.jpg) do (
  set outfile=%%~na-shrunk
  magick convert "%%a" -resize 300x200 -background black "!outfile!%%~xa"
)

因此,如果有人能指出哪个最接近解决方案并修复它,那将不胜感激。

imagemagick
  • 2 个回答
  • 202 Views
Martin Hope
Daniel R. Collins
Asked: 2021-05-24 06:21:33 +0800 CST

使用 Image Magick 强制纵横比

  • 5

我正在 Image Magick 中寻找一个命令来强制图像进入特定的纵横比。结果应该是图层扩展为正确纵横比的原始图像,原始图像位于中间,任何新的周围空间为白色。我怎样才能做到这一点?

例如,宽源 Image1 生成以下结果:

图片1 Image1 为 4x3 纵横比

高大的源 Image2 生成这个结果:

在此处输入图像描述 在此处输入图像描述

在每种情况下,最终处理的图像具有 4:3 的纵横比。否则它们可能有任何尺寸。手动我一直在做一个过程:如果它比 4:3 宽,则将高度设置为宽度/4×3;否则,如果它高于 4:3,则将宽度设置为高度/3×4。

或者,如果它更容易,那么所有输出图像都具有固定大小是可以接受的:例如,640 x 480。

(稍后将批量使用所需的命令来处理一系列不同初始尺寸的文件。)

imagemagick
  • 1 个回答
  • 199 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何减少“vmmem”进程的消耗?

    • 11 个回答
  • Marko Smith

    从 Microsoft Stream 下载视频

    • 4 个回答
  • Marko Smith

    Google Chrome DevTools 无法解析 SourceMap:chrome-extension

    • 6 个回答
  • Marko Smith

    Windows 照片查看器因为内存不足而无法运行?

    • 5 个回答
  • Marko Smith

    支持结束后如何激活 WindowsXP?

    • 6 个回答
  • Marko Smith

    远程桌面间歇性冻结

    • 7 个回答
  • Marko Smith

    子网掩码 /32 是什么意思?

    • 6 个回答
  • Marko Smith

    鼠标指针在 Windows 中按下的箭头键上移动?

    • 1 个回答
  • Marko Smith

    VirtualBox 无法以 VERR_NEM_VM_CREATE_FAILED 启动

    • 8 个回答
  • Marko Smith

    应用程序不会出现在 MacBook 的摄像头和麦克风隐私设置中

    • 5 个回答
  • Martin Hope
    Vickel Firefox 不再允许粘贴到 WhatsApp 网页中? 2023-08-18 05:04:35 +0800 CST
  • Martin Hope
    Saaru Lindestøkke 为什么使用 Python 的 tar 库时 tar.xz 文件比 macOS tar 小 15 倍? 2021-03-14 09:37:48 +0800 CST
  • Martin Hope
    CiaranWelsh 如何减少“vmmem”进程的消耗? 2020-06-10 02:06:58 +0800 CST
  • Martin Hope
    Jim Windows 10 搜索未加载,显示空白窗口 2020-02-06 03:28:26 +0800 CST
  • Martin Hope
    andre_ss6 远程桌面间歇性冻结 2019-09-11 12:56:40 +0800 CST
  • Martin Hope
    Riley Carney 为什么在 URL 后面加一个点会删除登录信息? 2019-08-06 10:59:24 +0800 CST
  • Martin Hope
    zdimension 鼠标指针在 Windows 中按下的箭头键上移动? 2019-08-04 06:39:57 +0800 CST
  • Martin Hope
    jonsca 我所有的 Firefox 附加组件突然被禁用了,我该如何重新启用它们? 2019-05-04 17:58:52 +0800 CST
  • Martin Hope
    MCK 是否可以使用文本创建二维码? 2019-04-02 06:32:14 +0800 CST
  • Martin Hope
    SoniEx2 更改 git init 默认分支名称 2019-04-01 06:16:56 +0800 CST

热门标签

windows-10 linux windows microsoft-excel networking ubuntu worksheet-function bash command-line hard-drive

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve