Календарь на Май 2024 года: calendar2008.ru/2024/may/
Навигация
Главная »  Новости 

Конвертирование изображений (исходники)


Источник: pcnext
Darkmaster
Сегодня мы с вами поговорим о том как с помощью Делфи можно конвертировать различные изображения из одного формата в друго. Конечно же у вас всех есть AcDSee, XNView и прочие проги решающие данные проблемы, но вдруг вы решили написать такую же. Конечно я думаю, что в коде который я вам предоставлю разбиратся будет не каждый, но это и не надо, просто используйте его как шаблон для решения ваши задач. Ну что же начнем. Для начала конвертируем BMP в EMF.

BMP to EMF:

function bmp2emf( const SourceFileName: TFileName): Boolean;
var
Metafile: TMetafile;
MetaCanvas: TMetafileCanvas;
Bitmap: TBitmap;
begin
Metafile := TMetaFile.Create;
try
Bitmap := TBitmap.Create;
try
Bitmap.LoadFromFile(SourceFileName);
Metafile.Height := Bitmap.Height;
Metafile.Width := Bitmap.Width;
MetaCanvas := TMetafileCanvas.Create(Metafile, 0 );
try
MetaCanvas.Draw( 0 , 0 , Bitmap);
finally
MetaCanvas.Free;
end ;
finally
Bitmap.Free;
end ;
Metafile.SaveToFile(ChangeFileExt(SourceFileName, '.emf' ));
finally
Metafile.Free;
end ;
end ;


Используем функцию так:

procedure TForm1.Button1Click(Sender: TObject);
begin
bmp2emf( 'C:\TestBitmap.bmp' );
end ;


Теперь один из самых популярный и нужных способов.

BMP to Jpeg:

uses
Jpeg, ClipBrd;


... procedure TfrmMain.ConvertBMP2JPEG;
// converts a bitmap, the graphic of a TChart for example, to a jpeg
var
jpgImg: TJPEGImage;
begin
// copy bitmap to clipboard
chrtOutputSingle.CopyToClipboardBitmap;
// get clipboard and load it to Image1
Image1.Picture.Bitmap.LoadFromClipboardFormat(cf_BitMap,
ClipBoard.GetAsHandle(cf_Bitmap), 0 );
// create the jpeg-graphic
jpgImg := TJPEGImage.Create;
// assign the bitmap to the jpeg, this converts the bitmap
jpgImg.Assign(Image1.Picture.Bitmap);
// and save it to file
jpgImg.SaveToFile( 'primer.jpg' );
end ;


BMP to WMF:

procedure ConvertBMP2WMF
( const BMPFileName, WMFFileName: TFileName);
var
MetaFile : TMetafile;
Bitmap : TBitmap;
begin
Metafile := TMetaFile.Create;
Bitmap := TBitmap.Create;
try
Bitmap.LoadFromFile(BMPFileName);
with MetaFile do
begin
Height := Bitmap.Height;
Width := Bitmap.Width;
Canvas.Draw( 0 , 0 , Bitmap);
SaveToFile(WMFFileName);
end ;
finally
Bitmap.Free;
MetaFile.Free;
end ;
end ;


Использование: ConvertBMP2WMF( 'c:\mypic.bmp' , 'c:\mypic.wmf' );

CUR to BMP:

procedure TForm1.Button1Click(Sender: TObject);
var
hCursor: LongInt;
Bitmap: TBitmap;
begin
Bitmap := TBitmap.Create;
Bitmap.Width := 32 ;
Bitmap.Height := 32 ;
hCursor := LoadCursorFromFile( 'test.cur' );
DrawIcon(Bitmap.Canvas.Handle, 0 , 0 , hCursor);
Bitmap.SaveToFile( 'test.bmp' );
Bitmap.Free;
end ;


ICO to BMP:

Var
Icon : TIcon;
Bitmap : TBitmap;
begin
Icon := TIcon.Create;
Bitmap := TBitmap.Create;
Icon.LoadFromFile( 'c:\picture.ico' );
Bitmap.Width := Icon.Width;
Bitmap.Height := Icon.Height;
Bitmap.Canvas.Draw( 0 , 0 , Icon);
Bitmap.SaveToFile( 'c:\picture.bmp' );
Icon.Free;
Bitmap.Free;
end ;


JPEG to BMP:

uses
JPEG;
...
procedure JPEGtoBMP( const FileName: TFileName);
var
jpeg: TJPEGImage;
bmp: TBitmap;
begin
jpeg := TJPEGImage.Create;
try
jpeg.CompressionQuality := 100 ; {Default Value}
jpeg.LoadFromFile(FileName);
bmp := TBitmap.Create;
try
bmp.Assign(jpeg);
bmp.SaveTofile(ChangeFileExt(FileName, '.bmp' ));
finally
bmp.Free
end ;
finally
jpeg.Free
end ;
end ;


Вот такие вот шаблоны. Используйте на здоровье!



 

 Минсвязи готовит ИТ-систему для ЖКХ.
 Роль поставщиков BI-услуг. Требования к выбору консультантов и внедренцев.
 Лицензирование продуктов Corel для академических учреждений.
 Независимая исследовательская фирма признала Business Objects поставщиком первого звена в области корпоративных инструментов ETL.
 База данных Computer Associates CMDB.


Главная »  Новости 

© 2024 Team.Furia.Ru.
Частичное копирование материалов разрешено.