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

Вниз

Загрузка файла JPG в Image   Найти похожие ветки 

 
Angel S   (2001-12-15 23:04) [0]

Можно ли загрузить изображение в Jpg из файла ресурсов в Image...
Если можно, то как???


 
Virtualik ©   (2001-12-15 23:53) [1]


Procedure LoadJPEGFromRes(TheJPEG : string; var ThePicture : TPicture);
var
ResHandle : THandle;
MemHandle : THandle;
MemStream : TMemoryStream;
ResPtr : PByte;
ResSize : Longint;
JPEGImage : TJPEGImage;
begin
ResHandle := FindResource(hInstance, PChar(TheJPEG), "JPEG");
MemHandle := LoadResource(hInstance, ResHandle);
ResPtr := LockResource(MemHandle);
MemStream := TMemoryStream.Create;
JPEGImage := TJPEGImage.Create;
ResSize := SizeOfResource(hInstance, ResHandle);
MemStream.SetSize(ResSize);
MemStream.Write(ResPtr^, ResSize);
FreeResource(MemHandle);
MemStream.Seek(0, 0);
JPEGImage.LoadFromStream(MemStream);
ThePicture.Assign(JPEGImage);
JPEGImage.Free;
MemStream.Free;
end;


 
Angel S ©   (2001-12-16 13:00) [2]

Выдает ошибку JPEG error #41
В чем может быть ошибка???


 
Мефодий   (2001-12-16 22:42) [3]

Привожу кусок кода из своей программы, где из файла ресурсов Myres.rc с Jpeg файлом вытаскиваю картинку:

procedure TMyForm.FormCreate(Sender: TObject);
var temp_jpeg: TJPEGImage;
ResStream : TResourceStream;
begin
.....
temp_jpeg := TJpegImage.Create;
ResStream := TResourceStream.CreateFromID(HInstance,1,RT_RCDATA);
temp_jpeg.LoadFromStream(ResStream);
.....
temp_jpeg.Free;
ResStream.Free;
.....
end;

Буду рад, если помог чем-нибудь.

P.S.
Содержимое файла Myres.rc

1 RCDATA "Myimage.jpg"
.......


 
Angel S ©   (2001-12-17 16:52) [4]

Я подключаю откомпелированный файл ресурсов(res), а rc не могу подключить, т.к. он говорит, что не поддерживает 16-разрядные файлы ресурсов....
Подключаю с помощью
{$R Myres.rc}


 
Angel S ©   (2001-12-17 16:53) [5]

при подключении MyRes.res выскакивает ошибка в этой строке:
ResStream := TResourceStream.CreateFromID(HInstance,1,RT_RCDATA);


 
Dimka Maslov ©   (2001-12-17 17:02) [6]

В форме
procedure TAboutForm.FormCreate(Sender: TObject);
var
RS: TResourceStream;
JP: TJPEGImage;
begin
RS:=nil; JP:=nil;
try
RS:=TResourceStream.Create(hInstance, "ABOUT", "JPEG");
JP:=TJPEGImage.Create;
JP.LoadFromStream(RS);
JP.DIBNeeded;
Image.Picture.Bitmap.Assign(JP);
finally
RS.Free;
JP.Free;
end;
end;


В rc-файле
ABOUT JPEG ABOUT.JPG

Добавлять rc-файл к проекту надо через меню Project>Add To Project


 
Angel S ©   (2001-12-18 19:58) [7]

Все заработало... Спасибо большое!!!



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

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

Наверх




Память: 0.48 MB
Время: 0.021 c
14-22344
anod
2001-11-06 13:15
2002.01.08
Крестоики - нолики


1-22140
Serg5
2001-12-20 10:17
2002.01.08
Вопрос, есть ли возможность уменьшить шрифт до 4 пикселей, менятся он меняется(программа не ругается), а на экран (Canvas.Font) он всё равно выводится 8 (самым минимальным)


3-21925
Nailka
2001-12-04 16:16
2002.01.08
проблема с поиском в поле типа Long в Oracle


14-22364
Merlin
2001-11-06 00:22
2002.01.08
Если не спасете, то так и пропадет!


6-22275
Moscower
2001-10-08 12:43
2002.01.08
Как можно через TNMFTP послать команду chmod на Linux-сервер?