(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
Zend Guard 1 Year Subscription
GFI FaxMaker и 1 год поддержки (10-49 лицензий)
ARCHICAD 21, локальная лицензия на 12 месяцев
ReSharper - Commercial annual subscription
Microsoft Windows Professional 10, Электронный ключ
 
Другие предложения...
 
Курсы обучения   WWW.ITSHOP.RU
 
Другие предложения...
 
Магазин сертификационных экзаменов   WWW.ITSHOP.RU
 
Другие предложения...
 
3D Принтеры | 3D Печать   WWW.ITSHOP.RU
 
Другие предложения...
 
Новости по теме
 
Рассылки Subscribe.ru
Информационные технологии: CASE, RAD, ERP, OLAP
Новости ITShop.ru - ПО, книги, документация, курсы обучения
Программирование на Microsoft Access
CASE-технологии
СУБД Oracle "с нуля"
Каждый день новые драйверы для вашего компьютера!
Новости мира 3D-ускорителей
 
Статьи по теме
 
Новинки каталога Download
 
Исходники
 
Документация
 
 



    
rambler's top100 Rambler's Top100