Главная |
Delphi |
WinAPI
Конвертирование Bitmap в JPEGИспользуется поток данных, чтобы загрузить растровое изображение и преобразовать его в изображение Jpeg. Загружаем .bmp изображение, преобразовываем его в изображение .jpg и сохраняем как .jpg. Необходимо использовать поток, чтобы сохранить файл как .jpg. Использование обычного Image.Picture.SaveToFile(FileName) сохранит изображение как растровый файл. unit BMP2JPGz; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls, Jpeg; type TForm1 = class(TForm) Image1: TImage; LoadPictureButton: TButton; Image2: TImage; Label1: TLabel; Label2: TLabel; SaveJPGButton: TButton; procedure LoadPictureButtonClick(Sender: TObject); procedure SaveJPGButtonClick(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; procedure ConvertBMP2JPG(Instream: TStream); implementation {$R *.DFM} procedure ConvertBMP2JPG(Instream: TStream); var JpegImage: TJpegImage; Bitmap: TBitmap; begin JpegImage := TJpegImage.Create; Bitmap := TBitmap.Create; try // Загружаем и отображаем растровое изображение Bitmap.LoadFromStream(InStream); Form1.Image1.Canvas.Draw(0, 0, Bitmap); Form1.Label1.Caption := 'Bitmap picture'; // преобразовываем в jpeg и отображаем JpegImage.Assign(Bitmap); Form1.Image2.Canvas.Draw(0, 0, JpegImage); Form1.Label2.Caption := 'Jpeg picture'; finally JpegImage.Free; Bitmap.Free; end; end; procedure TForm1.LoadPictureButtonClick(Sender: TObject); var InStream: TFileStream; begin try // изменяем любой растровый файл ... InStream := TFileStream.Create('Naomi.bmp', fmOpenRead); ConvertBMP2JPG(Instream); finally InStream.Free; end; end; procedure TForm1.SaveJPGButtonClick(Sender: TObject); var OutStream: TFileStream; JpegImage: TJpegImage; begin JpegImage := TJpegImage.Create; JpegImage.Assign(Image2.Picture.Bitmap); try OutStream := TFileStream.Create('Naomi.jpg', fmOpenWrite or fmCreate); JpegImage.SaveToStream(OutStream); finally OutStream.Free; end; JpegImage.Free; end; end. Автор www.daniweb.com |
|
||
Copyright (c) Авраменко С. Н. 2008. |