将 bmp 转换为透明 png

将 bmp 转换为透明 png

我有很多像这样的 bmp 图像:

在此处输入图片描述

我需要将其转换为透明的 png 文件,例如:

在此处输入图片描述

基本上,蓝色(#00FFFF)需要变为透明,紫色(FF00FF)需要变为灰色(#747474)。

BMP 文件非常旧,颜色深度为 8 位,它们最初来自游戏“英雄无敌 3”,我正尝试将这个游戏移植到 webgl,但精灵目前是我最大的问题。

我已经发现这个原始主题其中推荐使用 imagemagick,但是我不知道如何使用 imagemagick 在 Windows 中批量转换文件,也不知道如何将 bmp 上的紫色转换为透明 png 中的实际灰色值。

我真的很想得到一些关于这方面的建议,或者一个关于使用 imagemagick 批量转换文件时 windows 命令提示符行需要什么样子的示例。

答案1

Imagemagickmogrify可以做到这一点。

您的原图(我将其转换为 BMP,因为在 SuperUser 中它是 PNG)

在此处输入图片描述

mogrify -format png -transparent #00ffff *bmp

在此处输入图片描述

您还可以同时转换颜色

mogrify -format png -fill grey -opaque #FF00FF -transparent #00ffff *bmp

在此处输入图片描述

图像的阴影具有使用 #FF96FF 等颜色的抗锯齿边缘,可能需要将其合并到透明背景或阴影中。您可以使用-fuzz选项

mogrify -format png -fuzz 80% -fill grey -opaque #FF00FF ^ 
        -transparent #00ffff *bmp

在此处输入图片描述

请注意,在 Microsoft Windows 上,mogrify不是一个单独的命令。您必须使用该magick命令作为前缀,如下所示:magick mogrify ...

相关内容