png格式转jpg格式

来源:互联网 发布:中国根域名服务器在哪 编辑:程序博客网 时间:2024/05/02 01:50

    由于项目需要,需要将png格式的图片转换为jpg格式的图片,方法如下:

      MyImg := TMemoryStream.Create;
      MyImg.LoadFromFile(Local_path+Img);
      MyImg.Position := 0;
      if MyImg.Size <= 0 then
      begin
        MyImg.Free;
        continue;
      end;

      MyImg.ReadBuffer(lBuf, 2);
      if lBuf = $4D42 then
      begin

         bmp := TBitmap.Create;

         jpg := TJpegImage.Create; //引入单元jpeg

         try
         bmp .LoadFromStream(Local_path+Img);

         jpg.Assign(bmp);
         jpg.SaveToFile(Local_path+Img);

         finally

            FreeAndNil(jpg);

            FreeAndNil(bmp);

         end;

      end
      else
      //如果是png格式的图片,先转化为bmp格式,然后再转化为jpg(直接从png到jpg会报错)
      if lBuf = $5089 then
      begin
        png := TPNGObject.Create; //引入单元pngimage
        bmp := TBitmap.Create;
        jpg := TJpegImage.Create;
        try
          png.LoadFromFile(Local_path+Img);
          bmp.Assign(png);
          jpg.Assign(bmp);
          jpg.SaveToFile(Local_path+Img);
        finally
          FreeAndNil(png);
          FreeAndNil(bmp);
          FreeAndNil(jpg);
        end;
      end;
      MyImg.Destroy;

原创粉丝点击