Delphi 把一个ICO转换为BMP

// 方法1
var
  Icon  : TIcon;
  Bitmap : TBitmap;
begin
   Icon  := TIcon.Create;
   Bitmap := TBitmap.Create;
   Icon.LoadFromFile(‘c:\picture.ico‘); //Load an ICO
from File
   Bitmap.Width := Icon.Width;
   Bitmap.Height := Icon.Height;
   Bitmap.Canvas.Draw(0, 0, Icon );
   Bitmap.SaveToFile(‘c:\picture.bmp‘); //Convert ICO to
BMP!
   Icon.Free;
   Bitmap.Free;
end;

// 方法2
procedure TForm1.ConvertClick(Sender: TObject);
var
  winDC, srcdc, destdc : HDC;
  oldBitmap : HBitmap;
  iinfo : TICONINFO;
begin
 GetIconInfo(Image1.Picture.Icon.Handle, iinfo);
 WinDC := getDC(handle);
 srcDC := CreateCompatibleDC(WinDC);
 destDC := CreateCompatibleDC(WinDC);
 oldBitmap := SelectObject(destDC, iinfo.hbmColor);
 oldBitmap := SelectObject(srcDC, iinfo.hbmMask);
 BitBlt(destdc, 0, 0,
Image1.picture.icon.width,Image1.picture.icon.height,srcdc,
0, 0, SRCPAINT);
 Image2.picture.bitmap.handle := SelectObject(destDC,
oldBitmap);
 DeleteDC(destDC);
 DeleteDC(srcDC);
 DeleteDC(WinDC);
 image2.Picture.Bitmap.savetofile(ExtractFilePath(Applicat
ion.ExeName)+ ‘myfile.bmp‘);
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
 image1.picture.icon.loadfromfile(‘c:\myicon.ico‘);
end;

http://blog.csdn.net/yanjiaye520/article/details/6676215

时间: 2024-08-02 13:10:19

Delphi 把一个ICO转换为BMP的相关文章

c/c++ 求一个整数转换为二进制数时中‘1’的个数

求一个正整数转换为二进制数时中'1'的个数 分析:这道题目就是很简单的位运算,我们可以把这个整数和1进行&操作(就是二进制数中的最低位与1进行&),然后将这个整数进行右移处理,将下个位置的数字移到最低位:反复如此操作直到该数变为0. 1 int NumOf_one(int k) 2 { 3 int count_1 = 0; 4 while(k) 5 { 6 if(k & 1) 7 count_1++; 8 k >>= 1; 9 } 10 return count_1;

Sql Server 中将由逗号“,”分割的一个字符串转换为一个表集,并应用到 in 条件中

Sql Server 中将由逗号","分割的一个字符串,转换为一个表,并应用与 in 条件 select * from tablenmae where id in(1,2,3) 这样的语句和常用,但是如果in 后面的 1,2,3是变量怎么办呢,一般会用字符串连接的方式构造sql语句 string aa="1,2,3"; string sqltxt="select * from tablename where id in ("+aa+")

delphi 判断一个数组的长度用 Length 还是 SizeOf ?

判断一个数组的长度用 Length 还是 SizeOf ?最近发现一些代码, 甚至有一些专家代码, 在遍历数组时所用的数组长度竟然是 SizeOf(arr); 这不合适! 如果是一维数组.且元素大小是一个字节, 这样用看不出错误, 譬如:  -------------------------------------------------------------------------------- vararr1: array[0..9] of Char;arr2: array[0..9] o

C语言定义一个整型变量转换为2进制数并输出出来

#include<stdio.h> int main() {     int a=12;       //定义一个需要转换的整型     char b[50];    //保存转化后到数组里面     _itoa_s(a,b,50,2);//转化为二进制     printf("%s\n",b);      //输出字符串 } 

一个Excel转换为Json格式的Python脚本

项目路径:https://code.csdn.net/langresser/excel2json 一个Python脚本,自动转换Excel里面的配置到Json格式. 1.这个是为Unity准备的,不过稍作修改可运行于任何环境 2.Excel内容要求为键值对的形式,具体可以参考脚本内的说明. 3.读取代码里面限制了读取配置的路径为Resources/config,即所有的配置都要放在这个目录下 4.运行前需要先安装xlrd:在xlrd目录执行python.exe setup install 5.在

Delphi获得一个进程的主窗体(GetWindow(AHandle, GW_OWNER)等于0的窗体才是主窗体,并且要IsWindowVisible排除Application窗口)

type  TMainWindow = packed record    ProcessID: THandle;    MainWindow: THandle;  end;  PMainWindow =^ TMainWindow; function IsMainWindow(AHandle: THandle): Boolean; begin Result :=(GetWindow(AHandle, GW_OWNER) = 0) and (IsWindowVisible(AHandle)); en

c++builder 重载WindowProc、WndProc 截获消息(比Delphi多一个Message Map方法)

c++builder 重载WindowProc.WndProc 截获消息 方法一WindowProc void __fastcall  myWindowProc(Messages::TMessage &msg); //增加Classes::TWndMethod OldWindowProc;  //增加 void __fastcall  TForm1::myWindowProc(Messages::TMessage &msg) {   if (msg.Msg == WM_MOUSEWHEEL

Delphi判断一个文件是不是JPG图片

判断头几个字节: function IsJpegFile(FileName: string): Boolean;constRightBuf : array[0..3] of Byte = ($FF,$D8,$FF,$D9);varBuf: array[0..3] of Byte;beginFillChar(Buf, 4, 0);with TFileStream.Create(FileName, 0) do begin Position := 0; ReadBuffer(Buf[0], 2); P

delphi执行一个外部程序,当外部程序结束后,delphi程序立即响应

//需要引用 ShellAPI 单元;procedure TForm1.Button1Click(Sender: TObject); var SEInfo: TShellExecuteInfo; ExitCode: DWORD; ExecuteFile, ParamString, StartInString: string; begin ExecuteFile := 'c:\Windows\system32\Calc.exe'; FillChar(SEInfo, SizeOf(SEInfo),