Вниз
Скачать: CL | DM;

Вопрос по JPEG из DLL   Найти похожие ветки 

← →
kas86   (2007-10-28 11:57) [0]

Вот например Bitmap file выташить из dll можно вот так
var
 AModule: THandle;
begin
 AModule := LoadLibrary("graphics.dll");
 image1.Picture.BitMap.LoadFromResourceName(AModule, "police");
 FreeLibrary(AModule);

Вопрос: А КАК ВЫТАЩИТЬ из тойже dll JPEG картинку??????


← →
MBo ©   (2007-10-28 12:02) [1]

TJpegImage.LoadFromStreaam + TResourceStream


← →
kas86   (2007-10-28 12:50) [2]

Хорошо, теоретически выглядить должно вроде как так?????

JPG: TJEPEGImage;
RS: TSesourceStream;

begin
JPG:=JPG.Create;
RS:=TResourceStream.Create(hInstance, PChar(copy("graphics.dll", 1, Pos(".", "graphics.dll")-1)), "poljpg"); -- вот тута у меня проблема, не могу додумать программа выдает Reource graphics not found
JpG.LoadFromStreaam(RS);
Image.Picture.Assign.(JPG);

где poljpg - сама картинка Жпег вшитая в длл

Помогите дописать правильно


← →
kas86   (2007-10-28 16:19) [3]

Ура разобрался самостоятельно! Перелопатив кучу форумов и исходников, на которых ничего не работает, втретил такую же кучу людей с такой же проблемой. Так вот :  КАК СОЗДАТЬ DLL-БИБЛИОТЕКУ И ИЗВЛЕЧЬ ИЗ НЕЁ JPEG НЕ РАСПАКОВЫВЫЯ НА ДИСК. (админ, можете добавить в faq)

1. Создаём файл graphics.rc
2. Пишем туда kartinka JPG kartinka.jpg (jpg и rc файлы в одном каталоге)
3. запускаем borland\delphi7\bin\brcc32.exe с параметром graphics.rc
4. Получив graphics.res в делфи создаем DLL Wizard
5. Дописываем после USES, строчку {$R graphics.res} и компилируем.
6. Получив graphics.dll кладем его в папку с разрабатываемой программой и пишем код куда вам надо:

var
RS: TResourceStream;
JPG: TJPEGImage;
AModule: THandle;
begin
AModule:=LoadLibrary("graphics.dll");
RS:=TResourceStream.Create(AModule, "kartinka", "JPEG");
JPG:=TJPEGImage.Create;
JPG.LoadFromStream(RS);
Image1.Picture:=nil;
Image1.Picture.Assign(JPG);
JPG.Free;
RS.Free;

Остаётся только расставить как вам надо try except. С битмапами проще - код расписан выше. Теоретически можно в длл зашить и мета файлы и т.д.
Спасибо MBo за то что указал на правильный путь.


← →
homm ©   (2007-10-28 16:22) [4]

> Image1.Picture:=nil;
> Image1.Picture.Assign(JPG);

Ты уверен, что ЭТО работает?


← →
Dimaxx ©   (2007-10-28 17:04) [5]

Насколько я представляю, должно быть так:

Image1.Picture.Bitmap.Assign(JPG.Bitmap);


← →
antonn ©   (2007-10-28 17:16) [6]

ага, как раз в битмап jpg грузить...


← →
kas86   (2007-10-28 17:54) [7]

ЕЩЁ ОДИН МОМЕНТ

Если в файле graphics.rc мы пишем kartinka JPG kartinka.jpg то и вдальнейшем
когда пишем программный код надо писать

RS:=TResourceStream.Create(AModule, "kartinka", "JPG"); а не JPEG, но у меня и так всё работало, главное чтоб в USES было прописано JPEG


← →
MetalFan ©   (2007-10-30 13:39) [8]


> Ура разобрался самостоятельно!

так тебе же сказали в [1]



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

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.008 c
2-1237447399
И. Павел
2009-03-19 10:23
2009.05.03
Вызов SQL-функции с меняющимся аргументом


11-1200013102
Pilligrim
2008-01-11 03:58
2009.05.03
TreeView


2-1237811538
Orion
2009-03-23 15:32
2009.05.03
Full Screen Mode


2-1235098931
kjhgfdjk
2009-02-20 06:02
2009.05.03
Коды клавиш


15-1235991795
alex_r
2009-03-02 14:03
2009.05.03
calligraphic pen




   Наверх