首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > perl python >

请问 Perl中使用Image:Magick模块,怎么获得像素的值

2012-04-23 
请教 Perl中使用Image::Magick模块,如何获得像素的值?在PHP中,我可以这样获得像素值:?php$image new Im

请教 Perl中使用Image::Magick模块,如何获得像素的值?
在PHP中,我可以这样获得像素值:

<?php
$image = new Imagick("logo/1.jpg");
$r=$image->getImagePixelColor(0,0);
print_r($r->getColor());
exit();
?>

//Array ( [r] => 47 [g] => 77 [b] => 17 [a] => 1 ) 



但在perl中,我这样得到的值是不一样的:

my $image = new Image::Magick;
$image->Read("logo/1.jpg");
my ($r, $g, $b) = $image->GetPixel(x=>0,y=>0,normalize=>0);
print $r;exit 0;

# 12079
正确的值应该是47



如果我使用Image::Imlib2,则结果是正确的:

my $image = Image::Imlib2->load("logo/1.jpg");
my ($r, $g, $b,$a) = $image->query_pixel(0,0);print $r;exit 0;

# 47

[解决办法]
先打印出$image->GetPixel(x=>0,y=>0,normalize=>0)返回的值看看。
[解决办法]
看c pan 上的资料啊
[解决办法]

探讨
打印出来$r的值就是12079,错误的啊。不知道这个12079是否与47存在某种对应转换关系。图形图像方面了解实在太少。

[解决办法]
突发奇想:

Python code
>>> 47.0/25520: 0.1843137254901961>>> 12079.0/6553521: 0.1843137254901961>>> pow(2,16)22: 65536
[解决办法]
RGB 值实际上就是r*255^2+g*255^1+b*255^0,也就是相当于255进制。

热点排行