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
  • Profile
    김영대 1999.10.19 18:46
    "efg's Computer Lab" 가 보셨어요 ?

    사이트: http://www.efg2.com/lab/

    거기에 보시면 "HistoStretch Gray Scale Images" 가 있는데

    예제 프로그램도 다운받을 수 있어서 보니까

    Gray Scale 이 되던데요...



    사이트에 있는 예제 프로그램:

    http://www.efg2.com/lab/ImageProcessing/HistoStretchGrays.ZIP