C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
Image1 и JPEG (в ресурсах)
FAV
Отправлено: 05.11.2004, 15:29


Не зарегистрирован







Люди!
Как из ресурсов программы ВО ВРЕМЯ ЕЁ РАБОТЫ можно вынуть JPEG картинку и вставить её в Image?
Borland C++ Bilder 6 позволяет сделать это только ДО запуска программы.
Но ведь Image понимает JPEG формат!!! ohmy.gif
Пытался сделать через Image1->Picture->Bitmap / Graphic.
Результат: при запуске проги знакомое до боли сообщение: "Access Violation... in module 'rtl60.bpl'..." sad.gif sad.gif sad.gif
При создании RES файла использовал следующую конструкцию rc файла:
" Pic JPG cacaya-to_cartinca.jpg " (без кавычек, естественно).
Rius
Отправлено: 05.11.2004, 16:05


Мастер участка

Группа: Участник
Сообщений: 321



Вот инфа из широкораспространенного FAQ'а, может поможет
QUOTE

>Q48. Как засунуть в pесуpсы файлы jpeg?

A(AP):

1) Засовываем Jpeg в res-файл.
  В файле MyJpeg.rc пишем:
MyJPEG RCDATA "MyCoolJPEG.jpg"
  И натравливаем на это дело brcc32 --   brcc32 MyJpeg.rc
  Для полного счастья осталось написать в нашем модуле что-то в духе
#pragma resource "MyJPEG.res"

2) Загружаем Jpeg из ресурсов
  Hапример, в *.h файле определяем у нашей формы в секции private (к примеру)
  переменную
TJPEGImage *MyJPEG;
  Естественно, где-то вверху есть #include
  Далее, в конструкторе формы пишем:
  (Собственно, тут два варианта; гурманы могут извращатсья с FindResource,
   LoadResource и в качестве заключительного аккорда -- LockResource; а мы
   пойдем... нет-нет, всего лишь другим путем.)
MyJPEG = new TJPEGImage();
TResourceStream *JPEGRes = new
TResourceStream((int)HInstance,AnsiString("MyJPEG"),RT_RCDATA);
MyJPEG->LoadFromStream(JPEGRes);
JPEGRes->Free();

3) Осталось дело за малым -- использовать этот самый Jpeg:
  В каком-нибудь OnPaint у PaintBox'а написать:
 ((TPaintBox*)Sender)->Canvas->Draw(0, 0, MyJPEG);
FAV
Отправлено: 12.11.2004, 11:56


Не зарегистрирован







Спасибо, Rius!!! В Image это рабоатет тоже. smile.gif smile.gif smile.gif
hell_admin
  Отправлено: 13.11.2004, 01:18


Ученик-кочегар

Группа: Участник
Сообщений: 8



А как несколько JPEG'oв в ресурсный файл сунуть, т.e. чего поменять надо в действиях???
Rius
Отправлено: 13.11.2004, 17:18


Мастер участка

Группа: Участник
Сообщений: 321



MyJPEG1 RCDATA "MyCoolJPEG1.jpg"
MyJPEG2 RCDATA "MyCoolJPEG2.jpg"
MyJPEG3 RCDATA "MyCoolJPEG3.jpg"

Вернуться в Вопросы программирования в C++Builder