由于项目需要,需要将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;