| Главная | |
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. |