Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1260514
  • 博文数量: 788
  • 博客积分: 4000
  • 博客等级: 上校
  • 技术积分: 7005
  • 用 户 组: 普通用户
  • 注册时间: 2008-08-19 15:52
文章存档

2017年(81)

2011年(1)

2009年(369)

2008年(337)

分类:

2009-03-13 10:34:44



png   :=   TPNGGraphic.Create;  
              try  
                  Image1.Picture.LoadFromFile(sBmpName);  
                  if   Image1.Picture.Graphic   is   TBitmap   then  
                        png.Assign(Image1.Picture.Graphic)  
                  else  
                  begin  
                      png.PixelFormat   :=   pf16bit;  
                      png.Width   :=   Image1.Picture.Width;  
                      png.Height   :=   Image1.Picture.Height;  
                      png.Canvas.Draw(0,   0,   Image1.Picture.Graphic);  
                  end;  
                  png.SaveToFile(sSaveName);  
              finally  
                  png.Free;  
              end;

用GDI+  
  function   TmainForm.SaveFileToPng(SaveBmp:TBitMap32;FileName   :String):Boolean;  
  var  
    B:TBitmap32;  
    encoderClsid:   TGUID;  
    TempGBitmap   :TGPbitmap;  
    i,j   :integer;  
    color:   Cardinal;  
    stat:   TStatus;  
  begin  
      result   :=false;  
      B   :=TBitMap32.Create;  
      B.DrawMode   :=   dmBlend;  
      B.Assign(SaveBmp);  
      TempGBitMap   :=TGPbitMap.Create(B.width,   B.height,   PixelFormat32bppARGB);  
      for   i   :=0   to   B.Width   -1   do  
        for   j   :=0   to   B.Height   -1   do  
          begin  
                Color:=B.Pixel[i,j];  
                TempGBitMap.SetPixel(i,j,Color);  
            end;  
      GetEncoderClsid('image/png',   encoderClsid);  
      stat   :=   TempGBitMap.Save(FileName,   encoderClsid,   nil);  
      if   Stat=Ok   then  
          result   :=true;  
  end;

请参见下面帖中我的回复:  
   
 



--------------------------
新闻:中国移动将简化资费套餐至10套以内
导航:博客园首页  知识库  新闻  招聘  社区  小组  博问  网摘  找找看
阅读(948) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~