【发布时间】:2011-05-05 08:24:28
【问题描述】:
你好 这是我的代码:
procedure TForm4.Button1Click(Sender: TObject);
var
png: TPNGImage;
data: PRGBQarray;
p: ^tagRGBQuad;
i, o: integer;
begin
png := TPNGImage.Create;
try
png.LoadFromFile('C:\Untitled.png');
for o := 1 to 100 do
begin
data:=png.Scanline[o];
for I := 1 to 400 do
begin
p := @data^[i];
p.rgbGreen := p.rgbBlue;
p.rgbRed := p.rgbGreen;
end;
end;
img.picture.Assign(png);
finally
png.Free;
end;
end;
它不起作用,它使图片混乱,我确定这是因为 rgbReserved。 我该怎么办?
【问题讨论】:
-
能否让您的代码可读?
-
图片是怎么弄得乱七八糟的?您确定这是 32 位图像而不是 24 位图像吗?可以看截图吗?
-
@Andreas:这是一个有趣的结构......它应该看起来更漂亮@data^[@i^],你觉得呢? :D
-
@Andreas: 怎么了?!
标签: delphi image bitmap grayscale scanline