Q&A

  • bitmap을 2진으로 변경
bmp파일을 흑과백으로변환이 가능한지

즉 칼라로 출력하지 않고 검정색과 힌색으로만 출력하도록.

감사합니다.

1  COMMENTS
  • Profile
    구창민 2000.04.12 22:06
    박대석 wrote:

    > bmp파일을 흑과백으로변환이 가능한지

    > 즉 칼라로 출력하지 않고 검정색과 힌색으로만 출력하도록.

    > 감사합니다.





    일전에 Torry페이지에선가 우연히 보았던 내용인데..

    흑백칼라로 만들어 주는 예제입니다.

    배열을 사용하므로, 이미지가 클 경우 엄청 느려질 수 있습니다.

    그냥, 참고만 하세요..



    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]);

    end;



    그럼~ 즐거운 프로그래밍 하시길~