|
Навигация
|
Главная » Новости Конвертирование изображений (исходники)Источник: 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.
Частичное копирование материалов разрешено. |