|
안녕하세요 utime.김성하입니다.
방법이야 많습니다.
제일 쉬운 방법으로는 폼에다가 TImage 컴포넌트 얹어 놓고 bmp파일 로딩하고난 후 컴파일 하면 됩니다.( 추천! )
음~ 아니면
난 좀더 삽질하면서 남들이 최대한 보기 어렵게 하겠다고 생각하시면
바이너리 코드를 일일히 소스에 박아 넣으시고
그걸 로딩하시면 되것지요~
컴포넌트 만들다가 생각나서 만든건데
걍 이런 삽질하는 넘도 있구나 생각하시길...
function AddData( const pbuf : PChar; const offset : integer ; const data : PChar ) : integer;
var
iLen : integer;
begin
iLen := Length( data );
CopyMemory( pbuf + offset, data, iLen );
Result := offset + iLen;
end;
procedure SetTempImage( const bmp : TBitmap );
var
buf : pChar;
imgStr : Char;
memstr : TMemoryStream;
tmpBmp : TBitmap;
i1,
iLen,
offset : integer;
begin
offset := 0;
GetMem( buf, 1024+512);
ZeroMemory( buf, 1024+512 );
offset := AddData( buf, offset, '424D180200000000000036010000280000000E00');
offset := AddData( buf, offset, '00000E0000000100080000000000E0000000120B0000120B0000400000004000');
offset := AddData( buf, offset, '000000000000FFFFFF00FF00FF0000E7C40000E4C10000DEBD0000DBBA0000DA');
offset := AddData( buf, offset, 'B90000D3B30000D0B10000C4A60000C1A40000C0A30000BC9F0000B89B0000AD');
offset := AddData( buf, offset, '930001AD930001A58C00019D850001907A0001836F00017F6C0002816E000396');
offset := AddData( buf, offset, '800005B79C000B9E870013D1B40010AE95000D8C780012B99F000E8C79001088');
offset := AddData( buf, offset, '760022CCB2001FA08C0022A08D002FBDA6002DB09C003FE3CA0062EED90064E3');
offset := AddData( buf, offset, 'D00073F2DF005DB3A6007CE1D1008BD9CD0092DFD300A9E4DB00B3EDE400B6EB');
offset := AddData( buf, offset, 'E200C2F4EC00D1FBF400D1F9F30000B69B0001816E0014B9A10013A18C0044ED');
offset := AddData( buf, offset, 'D40043BDAB0043B9A80049C8B6003DA0920072DECE00D1F4EF00E2F7F400FFFF');
offset := AddData( buf, offset, 'FF000202023E2C3A35353A2C3E020202000002022D231A252626251A232D0202');
offset := AddData( buf, offset, '0000022D1D05372828282837051D2D0200003E240803211E2728221C0308243E');
offset := AddData( buf, offset, '00002B0F040319151718151603040F2B0000390E040303141515150B03040E39');
offset := AddData( buf, offset, '0000360C060310131515341107060C360000360C091215151515151515090C36');
offset := AddData( buf, offset, '0000390E0A0C382F1F153138330A0E3900002B0F0A0A30321F1532300A0A0F2B');
offset := AddData( buf, offset, '00003E240D0A2A3D293B3D2A0A0D243E0000022D1B0D203C2E2E3C200D1B2D02');
offset := AddData( buf, offset, '000002022D240F0E0C0C0E0F242D020200000202023E2B393636392B3E020202');
offset := AddData( buf, offset, '0000');
memstr := TMemoryStream.Create;
memstr.Clear;
iLen := Length( buf ) div 2;
offset := 0;
for i1:=0 to Pred(iLen) do
begin
imgStr := char( StrToInt( '$' + String(buf[offset]) + String(buf[offset+1]) ) );
Inc( offset, 2 );
memstr.Write(imgStr, sizeof(char));
end;
FreeMem( buf );
memstr.Position := 0;
tmpBmp := TBitmap.Create;
try
tmpBmp.LoadFromStream( memstr );
except
FreeAndNil( memstr );
FreeAndNil( tmpBmp );
Exit;
end;
FreeAndNil( memstr );
bmp.Canvas.Draw((bmp.Width-tmpBmp.Width)div 2,(bmp.Height-tmpBmp.Height)div 2, tmpBmp);
// bmp.SaveToFile( 'c:\aaa.bmp' ); // 테스트로
FreeAndNil( tmpBmp );
end;
요렇게 하면 이쁘고 작은 bmp이미지가 생긴다죠~?
참~ 이 bmp는 다른곳에서 사용하시면 안됩니다.
즐프하세요~
alberddo 님이 쓰신 글 :
: m_pBitmap->LoadFromFile(ExtractFileDir(Application->ExeName)+"\\Picture.bmp");
: 와 같은 방법으로 프로그램에서 사용중인데 방법을 바꿔서
: Picture.bmp파일을 실행파일 안에 넣을 수는 없나요?
: 가능한지, 불가능한 건지 알고 싶습니다.
|