for vi_height := 0 to Image1.Picture.Bitmap.Height - 1 do
begin
P := Image1.Picture.Bitmap.scanline[vi_height];
for vi_width := 0 to BytesPorScan - 1 do
if P^[vi_width]+1 < 255 then
P^[vi_width] := P^[vi_width]+1
else
P^[vi_width] := 255;
end;
Image1.Refresh;
end;
일단 24bit로 해상도를 바꾸세요.
걍.. 화면이랑 그런건 바꿀필요 없고... 단지 Image에서 픽셀 포멧만 변경함 됨다.
이렇게요..
Image1.Picture.Bitmap.PixelFormat := pf24bit;
그리고 ScanLine을 쓰세요.
팁에 보믄 ScanLine에 관해서 잘 나와 있음다.
아래는 버튼을 클릭 할때마다 밝기가 1씩 증가되는 검다.
보고 적당히 수정함 될꺼 같네여...
그리고 저장할 때는 다시 픽셀 포멧을 16bit로 낮추세요...
procedure TForm1.Button1Click(Sender: TObject);
var
xx, yy : integer;
bmpColor : TColor;
r,g,b: DWORD;
BytesPorScan: integer;
vi_width, vi_height: integer;
p: pByteArray;
begin
Image1.Picture.Bitmap.PixelFormat := pf24bit;
BytesPorScan := Abs(Integer(Image1.Picture.Bitmap.scanline[1])-Integer(Image1.Picture.Bitmap.scanline[0]));
for vi_height := 0 to Image1.Picture.Bitmap.Height - 1 do
begin
P := Image1.Picture.Bitmap.scanline[vi_height];
for vi_width := 0 to BytesPorScan - 1 do
if P^[vi_width]+1 < 255 then
P^[vi_width] := P^[vi_width]+1
else
P^[vi_width] := 255;
end;
Image1.Refresh;
end;
--> 명암은 저도 잘 몰라여!!!!
허접이라 그럼 이만 쉬리릭~~~~