Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.01.30;
Скачать: CL | DM;

Вниз

Как конвертировать JPEG в BMP ?   Найти похожие ветки 

 
Владимир   (2004-06-28 00:00) [0]

Может кто подскажет, как в KOL конвертировать JPEG файл в BMP


 
Dimaxx   (2004-06-28 00:49) [1]

var
 JPG: PJPEG;
 BMP: PBitmap;

...
 JPG:=NewJPEG;
 JPG.LoadFromFile("test.jpg");
 BMP:=NewBitmap(0,0);
 BMP.Assign(JPG.Bitmap);
// Либо сразу работаем с JPG.Bitmap
 JPG.Free;
...


 
Igit   (2004-07-06 11:15) [2]

Я делал так:

в Uses добавь Ole2 и OleCtl;

Функцией LoadIPic ты можешь загрузить файл src в IPicture, а
процедурой convert сразу конвертировать. Сразу хочу задать вопрос мастерам - оптимально ли написана Convert, а тол я задним местом чую, что можно было проще (ну может не проще - но экономней к ресурсам)?
Function LoadIPic(src : string;var IPict:IPicture) : boolean;
var
  _hFile : THANDLE;
  szFile : string;
  dwFileSize : DWORD;
  dwBytesRead : DWORD;
  bRead : BOOL;
  IStm: IStream;
  _hGlobal : HGLOBAL;
  pvData : Pointer;
begin
  Result := true;
  szFile:=src;
  // open file
  _hFile :=CreateFile(PChar(szFile), GENERIC_READ, 0, nil, OPEN_EXISTING, 0, 0);
  // get file size
  dwFileSize := GetFileSize(_hFile, NIl);
  pvData := NiL;
  // alloc memory based on file size
  _hGlobal := GlobalAlloc(GMEM_MOVEABLE, dwFileSize);
  if _hGlobal = 0 then
     begin
         //Could not allocate memory for image
         CloseHandle(_hFile);
         Result := false;
         exit;
     end;
 pvData := GlobalLock(_hGlobal);
 if pvData = NIL then
     begin
         //Could not lock memory for image
         GlobalUnlock(_hGlobal);
         CloseHandle(_hFile);
         Result := false;
         exit;
     end;
 dwBytesRead := 0;
 // read file and store in global memory
 bRead := ReadFile(_hFile, pvData^, dwFileSize, dwBytesRead, NIL);
 GlobalUnlock(_hGlobal);
 CloseHandle(_hFile);
 if not bRead   then
     begin
         //Could not read file
         Result := false;
         exit;
     end;

 istm := NiL;
 // create IStream* from global memory
 CreateStreamOnHGlobal(_hGlobal, TRUE, istm);
 OleLoadPicture(istm, dwFileSize, FALSE, IID_IPicture, IPict);
 GlobalUnlock(_hGlobal);
 GlobalFree(_hGlobal);
end;

==============================
Procedure Convert(src, dest : string);
var
  IPict:IPicture;
  oh : OLE_HANDLE;
  PBmp : PBitmap;
begin
  if not LoadIPic(src, IPict) then exit;
  PBmp := NewBitmap(0, 0);
  Ipict.get_Handle(oh);
  PBmp.Handle := oh;
  // изображение 32 битное
  PBmp.PixelFormat := pf32bit;
  // сохраняем
  PBmp.SaveToFile(dest);
  // все очищаем
  Pbmp.Free;
  IPict.Release();
end;


 
Igit   (2004-07-06 11:22) [3]

Кстати, эти функции загружают и конвертируют и GIF, JPEG, JPG, ICO, WMF, EMF



Страницы: 1 вся ветка

Текущий архив: 2005.01.30;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.039 c
1-1105864055
obs
2005-01-16 11:27
2005.01.30
Как сделать, чтобы работало "открвыть с помощью"....?


3-1103790800
Otari
2004-12-23 11:33
2005.01.30
Помощь, Как сделать фильтр с 2 словами


1-1106226580
Tomkat
2005-01-20 16:09
2005.01.30
Список параметров из INI файла


6-1100409416
Сергей Г
2004-11-14 08:16
2005.01.30
Wap страничка


3-1104225898
Tovarish Pronin
2004-12-28 12:24
2005.01.30
Как в DBGrid отобразить значения поля типа ftBytes?