在经历了许多令人沮丧的挫折之后,我终于得到了一个版本的PerlMagick模块与我的ActivePerl 5.10.0 build 1005一起工作.现在我正在玩它来做一些非常基本的颜色替换.
我已经可以使用以下代码替换一种颜色,比如黑色,另一种颜色,比如说蓝色.
#!perl
use strict;
use warnings;
use Image::Magick;
my $image = Image::Magick->new;
$image->Read('color-test.bmp');
$image->Opaque(fill => 'blue', color => 'black');
$image->Write('result.bmp');
Run Code Online (Sandbox Code Playgroud)
但我想知道我是否可以用蓝色替换任何不是黑色的颜色.我希望并且认为有一些惯用的语法来实现这一点,所以我要求快速帮助:)任何想法?
总是感谢任何指导/建议/意见:)
UPDATE
@rjh,谢谢你的代码和信息:)我尝试了所有的一点点的吸引力,他们都像魅力一样工作!
旧版本无法运行.我的PerlMagick是6.5.4,但有一点适应性,它也是这样的:
use strict;
use warnings;
use Image::Magick;
my $image = Image::Magick->new;
$image->Read('color-test.bmp');
$image->Transparent(color=>'black');
$image->Colorize(fill=>'blue');
$image->Composite(image=>$image);
$image->Write('result.bmp');
Run Code Online (Sandbox Code Playgroud)
好吧,当然我喜欢你的第二个版本.这是超级的.这是我期待的语法,呵呵:)
第一个命令行版本也运行良好,虽然我没想到这个版本.
再次,谢谢!
rjh*_*rjh 10
在ImageMagick 6.3.7-10及更高版本中,您可以使用"+"形式的opaque来反转颜色选择.此命令将使用蓝色转换非黑色的任何内容:
convert in.gif -fill blue +opaque black out.gif
Run Code Online (Sandbox Code Playgroud)
在Perl中,这可以通过以下方式完成:
$image->Opaque(fill => 'blue', color => 'black', invert => 'True');
Run Code Online (Sandbox Code Playgroud)
如果你只有一个旧版本,它仍然可以通过
convert out.gif \
\( +clone -matte -transparent black \
-fill blue -colorize 100% \) \
-composite in.gif
Run Code Online (Sandbox Code Playgroud)
...我将留给您转换为Perl API.
来源:http://www.imagemagick.org/Usage/color/#opaque - 一般用于ImageMagick操作的有用资源.
| 归档时间: |
|
| 查看次数: |
1418 次 |
| 最近记录: |