Форум: "Media";
Текущий архив: 2009.05.03;
Скачать: [xml.tar.bz2];
ВнизВопрос по 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 вся ветка
Форум: "Media";
Текущий архив: 2009.05.03;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.006 c