Q&A

  • Timage반투명처리칠문요...
파일첨부합니다.
그림 이미지 두개가 있는데요...
거기에서 동그라미 이미지 중에서 검정색부분은 반투명처리
그리구 흰색부분은 투명처리하구싶은데요..
아시는 분들 의견 꼭좀 부탁드립니다.
2  COMMENTS
  • Profile
    홍성락 2002.10.15 09:15
    아래를 참조하시구요
                   r := Round(GetRValue(bmpColor)/2);
                   g := Round(GetGValue(bmpColor)/2);
                   b := Round(GetBValue(bmpColor)/2);
    이부분은 바탕 색과 원본색을 50:50으로 한거라
    비유과 원본색이 0(검은색)이 아닐때는 적절히 계산하시면 됩니다

    procedure TForm1.Button1Click(Sender: TObject);
    var
        xx, yy : integer;
        bmpColor : TColor;
        r,g,b: DWORD;
    begin
        for xx := 0 to Image2.Width-1 do
            for yy := 0 to Image2.Height-1 do begin
                if Image2.Canvas.Pixels[xx,yy] = clWhite then
                   Image2.Canvas.Pixels[xx,yy] := clWhite
                else
                if Image2.Canvas.Pixels[xx,yy] = clBlack then begin
                   bmpColor := Image1.Canvas.Pixels[xx+(Image2.Left-Image1.Left),yy+(Image2.Top-Image1.Top) ];

                   r := Round(GetRValue(bmpColor)/2);
                   g := Round(GetGValue(bmpColor)/2);
                   b := Round(GetBValue(bmpColor)/2);
                   Image2.Canvas.Pixels[xx,yy] :=  RGB(R,G,B);

                end
                else
                   Image2.Canvas.Pixels[xx,yy] := clWhite;
            end;
        Image2.Picture.Bitmap.TransparentColor := clWhite;
        Image2.Picture.Bitmap.TransparentMode := tmFixed;//tmAuto;//

        Image2.Transparent := True;
    hsr///////////////////////////////////////
  • Profile
    박상윤 2002.10.15 05:44
    알파벤딩으로 처리 함될듯 한데...
    ^^;
    반투명이 쩜 힘들듯
    참고로 저는
    2가지 방식을 씁니다.
    1>반투명의 경우 한픽셀 건너 뛰면서 ..디스플레이를
    투명은 뒤의 픽셀로 채우면 되지여..
    2>2개의 픽셀값을 조합으로 처리를 합니다. (알파벤딩)
    알파벤딩 함수를 쓰려면 복잡해서 저는 직접 만들어서 썻습니다.

    투명의 경우에는 마스크 컬러를 만들어서 사요하는 방식을 많이 쓰실것
    같은데여

    참 2000이상에서는 반투명 개념을 지원한다는 이야기를 들었는데.  

    그럼