Тема: jpeg-файлы
Показать сообщение отдельно
  #2  
Старый 26.05.2010, 13:33
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

вот пока 2 пути:
PHP код:
uses
  jpeg
,
  
ExtCtrls,
...
type
  TForm1 
= class(TForm)
    
procedure FormCreate(Sender: TObject);
...
procedure TForm1.FormCreate(Sender: TObject);
type
  TByteArray 
= array[0..MaxInt-1] of Byte;
  
PByteArray = ^TByteArray;
var
  
jpegimage: TJPEGImage;
  
image: TImage;
  
InfoHeaderSize: DWORD;
  
ImageSize: DWORD;
  
BitmapInfo: PBitmapInfoHeader;
  
Bits: PByteArray;
  
i: Integer;
begin
  jpegimage
:=TJPEGImage.Create;
  
jpegimage.LoadFromFile('d:\Oleg\Work\Images\Windows2.jpg');
  
image:=TImage.Create(Self);
  
image.Picture.Bitmap.Assign(jpegimage);

  
//  1
  //  Pixels[x, y]
  
for i:=0 to $ff do
    
image.Canvas.Pixels[i, i]:=0;

  
//  2
  //  GetDIB
  
GetDIBSizes(image.Picture.Bitmap.Handle, InfoHeaderSize, ImageSize);
  
BitmapInfo:=AllocMem(InfoHeaderSize);
  
Bits:=AllocMem(ImageSize);
  
GetDIB(image.Picture.Bitmap.Handle, 0, BitmapInfo^, Bits^);
  for 
i:=0 to $ff do
    
Bits^[i]:=0;
  
FreeMem(Bits);
  
FreeMem(BitmapInfo);

  
image.Free;
  
jpegimage.Free;
end; 
Ответить с цитированием