Q&A

  • jpeg파일도 흑백으로~~~~~~~
안녕하세요...

어디에선가 칼라이미지를 흑백으로 변환하는소스가 있길래, 한번 해 보았는데 이미지 파일이 bmp파일만 되던데... (만약, bmp파일이 아닌 다른 파일일 경우 다음과 같은 에러발생 'Can Only modify an image if it contains a bitmap')

bmp파일이 아닌 다른 파일은 변환할수 없나요?....



칼라이미지를 흑백으로 변환소스

function TForm1.ToGrayscale(C: TColor): TColor;

var

Blu, Green, Red, Y: double;

begin

Blu := ( ( C and $ff0000 ) shr 16 );

Green := ( ( C and $ff00 ) shr 8 );

Red := ( C and $ff );

Y := ( Blu * 0.11 ) + ( Green * 0.59 ) + ( Red * 0.30 );



Result := TColor(Trunc(Y) * integer(65793));

end;



procedure TForm1.Button1Click(Sender: TObject);

var

C: TCanvas;

R: TRect;

x, y: integer;

begin

C := Image1.Canvas;

R := C.ClipRect;



for y := R.Top to R.Bottom do

for x := R.Left to R.Right do

C.Pixels[x, y] := ToGrayscale(C.Pixels[x, y]);

1  COMMENTS
서버에 요청 중입니다. 잠시만 기다려 주십시오...