마음의 안정을 찾기 위하여 - Icon 파일을 32Bit Bitmap으로 변환하는 방법.
2266320
657
804
관리자새글쓰기
태그위치로그방명록
별일없다의 생각
dawnsea's me2day/2010
색상(RGB)코드 추출기(Color...
Connection Generator/2010
최승호PD, '4대강 거짓말 검...
Green Monkey**/2010
Syng의 생각
syng's me2DAY/2010
천재 작곡가 윤일상이 기획,...
엘븐킹's Digital Factory/2010
Icon 파일을 32Bit Bitmap으로 변환하는 방법.
Delphi/Graphics, Draw | 2008/07/17 14:30


type 
  TRGBALine = array[word] of TRGBQuad; 
  PRGBALine = ^TRGBALine;

function IconToBitmap(const IconHandle: HIcon):TBitmap; 
var 
  IcoInfo: TIconInfo; 
  mask: TBitmap; 
  x, y: word; 
begin 
  result := nil; 
  if NOT GetIconInfo(IconHandle, IcoInfo) then 
    exit;

  try 
    try 
      result := TBitmap.Create; 
      result.Handle := IcoInfo.hbmColor; 
      result.PixelFormat := pf32bit; 

      mask := TBitmap.Create; 
      mask.Handle := IcoInfo.hbmMask; 
      mask.PixelFormat := pf32bit; 

      for x := 0 to result.Width-1 do 
        for y := 0 to result.Height-1 do 
          pRGBALine(result.Scanline[y])^[x].rgbReserved := NOT pRGBALine(mask.Scanline[y])^[x].rgbRed;  
    except 
      FreeAndNil(result); 
    end; 
  finally 
    if Assigned(mask) then 
      mask.Free; 
  end; 
end;


위 함수를 사용할때는 아래와 같이 사용한다.

procedure TForm1.Button1Click(Sender: TObject); 
var 
  IconHandle: HIcon; 
  Bitmap: TBitmap; 
begin 
  IconHandle := LoadIcon(HInstance, 'MAINICON'); 

  if ( IconHandle <> 0 ) then 
  begin 
    Bitmap := IconToBitmap( IconHandle ); 
    if Bitmap <> nil then 
    begin 
      SaveToFile('C:\MAINICON.bmp'); 
      Free; 
    end; 
  end; 
end;
2008/07/17 14:30 2008/07/17 14:30
Article tag list Go to top
View Comment 0
Trackback URL :: 이 글에는 트랙백을 보낼 수 없습니다
 
 
 
 
: [1] ... [540][541][542][543][544][545][546][547][548] ... [1317] :
«   2024/03   »
          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31            
전체 (1317)
출판 준비 (0)
My-Pro... (41)
사는 ... (933)
블로그... (22)
My Lib... (32)
게임 ... (23)
개발관... (3)
Smart ... (1)
Delphi (93)
C Builder (0)
Object... (0)
VC, MF... (10)
Window... (1)
Open API (3)
Visual... (0)
Java, JSP (2)
ASP.NET (0)
PHP (5)
Database (12)
리눅스 (29)
Windows (25)
Device... (1)
Embedded (1)
게임 ... (0)
Web Se... (2)
Web, S... (21)
잡다한... (6)
프로젝트 (0)
Personal (0)
대통령... (13)
Link (2)