(495) 925-0049, ITShop интернет-магазин 229-0436, Учебный Центр 925-0049
  Главная страница Карта сайта Контакты
Поиск
Вход
Регистрация
Рассылки сайта
 
 
 
 
 

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

Источник: 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 ;

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

Ссылки по теме


 Распечатать »
 Правила публикации »
  Написать редактору 
 Рекомендовать » Дата публикации: 05.02.2007 
 

Магазин программного обеспечения   WWW.ITSHOP.RU
Microsoft Office для дома и учебы 2019 (лицензия ESD)
Quest Software. TOAD for SQL Server Xpert Edition
ABBYY FineReader Pro для Mac, электронный ключ
Quest Software. Toad for SQL Server Development Suite
СУБД Линтер Бастион. Серверная лицензия. 5 клиентских подключений
 
Другие предложения...
 
Курсы обучения   WWW.ITSHOP.RU
 
Другие предложения...
 
Магазин сертификационных экзаменов   WWW.ITSHOP.RU
 
Другие предложения...
 
3D Принтеры | 3D Печать   WWW.ITSHOP.RU
 
Другие предложения...
 
Новости по теме
 
Рассылки Subscribe.ru
Информационные технологии: CASE, RAD, ERP, OLAP
Новости ITShop.ru - ПО, книги, документация, курсы обучения
Программирование на Microsoft Access
CASE-технологии
Компьютерный дизайн - Все графические редакторы
СУБД Oracle "с нуля"
Все о PHP и даже больше
 
Статьи по теме
 
Новинки каталога Download
 
Исходники
 
Документация
 
 



    
rambler's top100 Rambler's Top100