我有一个我能弄明白的复杂问题。有点历史...我曾经使用Bit.ly来生成qr代码。他们倒下了所以我去谷歌可靠性。
我使用Quark来处理代码,但我需要在它们进行夸克之前对它们进行配置。使用Bitly,qr代码生成percfecty。然而,当谷歌生成它们时,它们处于RGB状态,在灰度处生成一些完美的灰度。我正在使用perl的ImageMagick库在下载之前对图像进行必要的编辑。
到目前为止,这就是我所拥有的...... Google会为我下载的qr代码生成一个链接。因为它是RGB格式,我需要灰度或位图,因此它将与夸克(有效)兼容。
sub ConvertToGrayscale {
my ($imagePath) = @_;
my $OutPath = $imagePath; # $OutPath =~ s/png$/jpg/i;
my $image = Image::Magick->new() or die 'Unable to create new Image Object.';
my $imageReadError = '';
my $imageWriteError = '';
$imageReadError = $image->Read($imagePath); # returns a code if there is an error
if ($imageReadError) {
warn "Error: $imageReadError. Unable to read image path: $imagePath";
} else {
# $image->Scale(geometry => '75');
# $image->Set('png:color-type' => 'Grayscale', 'png:bit-depth' => '8');
# $image->Set(colorspace => 'Gray', magick => 'JPEG', quality => '100');
$imageWriteError = $image->Write($OutPath);
}
if ($imageWriteError) { warn "Error: $imageWriteError. Unable to write image file: $OutPath"; }
}
现在复杂的问题是我只是使用Set函数在图像上设置一些属性,例如colorspace =>灰度,它将图像模式转换为灰度,但当我将它加载到夸克时,它是巨大的,我无法将它缩小到足以使用。因此,这个解决方案的一个很好的候选人是可能有两种软件经验的人。
在旁注上可能会有所帮助。如果我将图像加载到photoshop中,我可以将图像转换为灰度图像,一切都很完美。因此,似乎我希望我的perl脚本能够模拟Photoshop对图像的作用。
答案 0 :(得分:0)
此刻我真的无法测试它,但我的第一个猜测是'Scale'使得整个图像比原始图像大约五倍半,大75倍。我不确定你为什么要用ImageMagick来缩放它,主要是接收应用程序能够在打印时缩放到所需的输出。
希望这会有所帮助,如果没有,我会在明天早上检查
答案 1 :(得分:0)
不要依赖外部服务来创建QR码。这是一个相对简单的目标,正如您在Bit.ly中所经历的那样,有时服务会消失。
相反,我建议使用此问题中演示的cpan模块:how to make QR codes in perl cgi
。它推荐的模块远不是cpan上唯一可用的模块,所以我建议您花一些时间尝试一些,直到找到你喜欢的模块。