如何用delphi读取图像的rgb值,对比度,亮度,饱和度呀??? ( 积分: 50 )

  • 主题发起人 主题发起人 爱delphi
  • 开始时间 开始时间

爱delphi

Unregistered / Unconfirmed
GUEST, unregistred user!
我在做一个图像的小程序可是怎么读取图像的rgb值,对比度,亮度,饱和度的这些属性呀,求求大家帮帮我吧,我真的是不会了呀!
 
我在做一个图像的小程序可是怎么读取图像的rgb值,对比度,亮度,饱和度的这些属性呀,求求大家帮帮我吧,我真的是不会了呀!
 
GetRValue
GetGValue
GetBValue
可以获取到R、G、B的值
亮度为(R+G+B)/3
对比度为1-3*Min(R,G,B)/(R+G+B)
 
能不能说明白点呀,最好把源码写出来吧,谢谢了。那个GetRValue
GetGValue
GetBValue
怎么用呀?
 
Color1 := Bmp.Canvas.Pixels[(bmp.Width div 8)*8+i3,y];// redbyte:=getRvalue(color1);//取R值
GrnByte :=getGvalue(color1);//取G值
blueByte :=getBvalue(color1);//取B值
调整RGB函数:
fcunction changergb(Bmp,Bmp1:Tbitmap;Red,Green,Blue:integer):boolean
var
SrcRow, DestRow:pRGBArray;
i,j:integer;
begin
try
for i := 0 to Bmp.Height- 1 do
begin
SrcRow := Bmp.ScanLine;
DestRow :=Bmp1.ScanLine;
for j := 0 to Bmp.Width - 1 do
begin
if Red> 0 then
DestRow[j].rgbtRed := Min(255, SrcRow[j].rgbtRed + Red)
else
DestRow[j].rgbtRed := Max(0, SrcRow[j].rgbtRed + Red);

if Green> 0 then
DestRow[j].rgbtGreen := Min(255, SrcRow[j].rgbtGreen +Green)
else
DestRow[j].rgbtGreen := Max(0, SrcRow[j].rgbtGreen +Green);

if Blue> 0 then
DestRow[j].rgbtBlue := Min(255, SrcRow[j].rgbtBlue +Blue)
else
DestRow[j].rgbtBlue := Max(0, SrcRow[j].rgbtBlue +Blue);
end;
end;
except
messagebox(handle,'error change picture','information',64);
end;
end;
 
哦,谢谢呀,我明白了呀,那能不能把图像的锐度和压缩质量也能读出来那就太好了呀!你能不能想想办法呀?????
 
后退
顶部