Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Run-time загрузка изображений разных форматов 
:(
    Опции темы
mr.Anderson
Дата 24.6.2007, 21:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


iOS Lead Developer
****


Профиль
Группа: Участник Клуба
Сообщений: 3374
Регистрация: 20.12.2004
Где: далеко

Репутация: 3
Всего: 128



Вопрос в следующем. Во время проектирования (design-time) в TImage можно загрузить изображение нескольких форматов (bmp, jpg, gif, png в частности). Однако, в run-time такой фокус не проходит.

Например, при попытке написать что-то вроде этого:
Код

TImage *n = new TImage( this );
n->Picture->LoadFromFile( "C:\\MyImage.jpg" );

Выдастся исключение, где ведется речь о недопустимом формате загружаемого изображения. С BMP таких проблем нет. С JPG проблема решается через
Код

#include <jpeg.hpp>

А вот с остальными форматами неувязочка. Собственно вопрос: как научить TImage понимать как можно больше форматов изображений? Ну, на худой конец, хотя бы основные четыре формата (bmp, jpg, gif, png).


--------------------
user posted image

user posted image
PM MAIL ICQ Skype   Вверх
jonie
Дата 24.6.2007, 21:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 5613
Регистрация: 21.8.2005
Где: Владимир

Репутация: 7
Всего: 118



например написать свой компонент, понимающий эти форматы, унаследованный от TImage, с перегруженной парой-тройкой функций....и использовать его.
Вроде бы gif тебе так просто не дастся - это комерческий формат....


--------------------
Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет...
PM MAIL Jabber   Вверх
mr.Anderson
Дата 24.6.2007, 21:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


iOS Lead Developer
****


Профиль
Группа: Участник Клуба
Сообщений: 3374
Регистрация: 20.12.2004
Где: далеко

Репутация: 3
Всего: 128



jonie, оно да, как вариант. smile Но как реализовать загрузку формата, который раньше не поддерживался?


--------------------
user posted image

user posted image
PM MAIL ICQ Skype   Вверх
jonie
Дата 24.6.2007, 21:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 5613
Регистрация: 21.8.2005
Где: Владимир

Репутация: 7
Всего: 118



ну соответственно дописать код который будет его читать и (если надо) распаковывать, т.к. большинство подобных форматов запакованы....ну и преобразовывать в bitmap. Библиотеки для  форматов есть.. и много...
скажем можно писать компонент основанный на TPanel (или подобном) и внутри класса определить TBimap, где и будет храниться изображение (которое ты считаешь) и выводить на канву.... и т.п. ... идея везде одна имхо.

Это сообщение отредактировал(а) jonie - 24.6.2007, 21:22


--------------------
Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет...
PM MAIL Jabber   Вверх
Klin
Дата 24.6.2007, 22:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1938
Регистрация: 7.10.2002
Где: Краснодар

Репутация: 20
Всего: 25



mr.Anderson, действительно дополнительных библиотек навалом, я лично пользуюсь пакетом RxLib. Там вообще все элементарно.

Код

 #include "rxgif.hpp" // подключаем, а дальше все по стандартной схеме
 TGIFImage *n = new TGIFImage; 
 n->LoadFromFile("I:\\1.gif");
 Canvas->Draw(0,0,n);



--------------------
Я человек - попробуйте обвинить меня за это.
PM MAIL   Вверх
SerK
Дата 1.7.2007, 20:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 263
Регистрация: 31.3.2007

Репутация: нет
Всего: нет



Уважаемый Klin!
Где взять библиотеку "rxgif.hpp" для работы с GIF-форматом?
Или, если не жалко, поделитесь.
Заранее благодарю.

Эту библиотеку нашел.
Устанавливаю. 
Следую пояснению, но не пойму, что значит:
"3. Пропишите в C++Builder6 путь к разархивированной папке ..\RX\units
  (те если вы разархивировали в C:\Program Files\Borland\CBuilder6\RX,
   этот путь будет C:\Program Files\Borland\CBuilder6\RX\units)"
  т.е. где и в каком месте в C++Builder6 прописать этот путь.

Это сообщение отредактировал(а) SerK - 1.7.2007, 20:59


--------------------
Пусть будет миру хорошо!
PM MAIL   Вверх
pandrew
Дата 2.7.2007, 08:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 213
Регистрация: 27.3.2006

Репутация: 3
Всего: 3



Цитата(SerK @  1.7.2007,  20:24 Найти цитируемый пост)
Следую пояснению, но не пойму, что значит:
"3. Пропишите в C++Builder6 путь к разархивированной папке ..\RX\units

Для вашего проекта в Project Options/directories добавьте путь - include path

PM MAIL   Вверх
SerK
Дата 7.7.2007, 21:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 263
Регистрация: 31.3.2007

Репутация: нет
Всего: нет



Добрый вечер!
Спасибо всем за помощь.
Случился у меня казус, скачал пакет RxLib на прошлой неделе, привез 
домой - диск не открылся, а на этом компьютере - стер. Теперь ищу и 
не могу найти и вспомнить сайт,  с которого скачал.
Кто знает адресс, подскажите, пожалуйста.


--------------------
Пусть будет миру хорошо!
PM MAIL   Вверх
Klin
Дата 7.7.2007, 21:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1938
Регистрация: 7.10.2002
Где: Краснодар

Репутация: 20
Всего: 25





--------------------
Я человек - попробуйте обвинить меня за это.
PM MAIL   Вверх
SerK
Дата 7.7.2007, 22:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 263
Регистрация: 31.3.2007

Репутация: нет
Всего: нет



Klin, спасибо!
Искал, но не там, чтобы мы без помощи друзей делали.
Тут такое дело, колесил по интернету и нашел информацию о том, 
что в последствии проекты уже не смогут обходиться без RxLib, даже
если RxLib не нужна. Поделитесь со своего личного опыта, так ли это.


--------------------
Пусть будет миру хорошо!
PM MAIL   Вверх
Klin
Дата 7.7.2007, 23:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1938
Регистрация: 7.10.2002
Где: Краснодар

Репутация: 20
Всего: 25



Цитата(SerK @  7.7.2007,  23:12 Найти цитируемый пост)
что в последствии проекты уже не смогут обходиться без RxLib, дажеесли RxLib не нужна.

Что вы имеете ввиду? Если ты где-то услышал, что библиотека будет "прикована" к каждому проекту и будет необходимость переносить ее на каждую пользовательскую машину, то это может произойти только при не граммотной установке и то постараться надо smile
Ну а если в проект включены компоненты из библиотеки, то все логично. 


--------------------
Я человек - попробуйте обвинить меня за это.
PM MAIL   Вверх
SerK
Дата 8.7.2007, 06:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 263
Регистрация: 31.3.2007

Репутация: нет
Всего: нет



Доброе утро Klin!
Спасибо за разъяснение.
 
Пытаюсь установить RXLib, следую вашим указаниям.
1. Tools->Enviroment Options ->Library ->Browsing Path добавить каталог в который распакована Rx
2. File - > Open   rxctl6.bpk
3. Compile
4. Повторить 2 и 3 с файлами rxdb6.bpk и rxbde6.bpk
5. File - > Open   dclrx6.bpk
6. Compile
7. Install.
8. пп 5-7 с dclrxdb6.bpk и dclrxbd6.bpk
9. Все. Должно работать

Установил, все прошло нормально, но при подключении библиотеки #include "rxgif.hpp", Borland все равное не видит ее, выдает сообщение:
 Unable to open include file  'rxgif.hpp'.
В чем дело? Не пойму.




Это сообщение отредактировал(а) SerK - 13.7.2007, 19:02


--------------------
Пусть будет миру хорошо!
PM MAIL   Вверх
Klin
Дата 22.7.2007, 00:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1938
Регистрация: 7.10.2002
Где: Краснодар

Репутация: 20
Всего: 25



Давно в инете не был smile 

Не знаю, разобрался автор или нет, но на будующее напишу - при подключении дополнительных пакетов, желательно (крайне) прописывать пути к библиотекам в проекте, это делается через опции проекта, а далее в каталогах.


--------------------
Я человек - попробуйте обвинить меня за это.
PM MAIL   Вверх
ksili
Дата 24.7.2007, 11:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2069
Регистрация: 3.11.2005
Где: Красноярск

Репутация: 1
Всего: 17



Цитата(jonie @  25.6.2007,  02:15 Найти цитируемый пост)
Вроде бы gif тебе так просто не дастся - это комерческий формат.... 

Кажется летом прошлого года истекли все патенты на формат GIF. Что-то такое в новостях читал. Пользуйтесь на здоровье smile


--------------------
Ничто так не развивает аналитическое мышление, как отладка сложной программы без возможности пошагового выполнения (с)
PM MAIL   Вверх
SerK
Дата 4.8.2007, 00:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 263
Регистрация: 31.3.2007

Репутация: нет
Всего: нет



Доброй ночи, уважаемый Klin!
Спасибо за советы, установочные пакеты, все работает в лучшем виде после того, как 
прописал именно в проекте. 
И еще спасибо за "стиль XP". 
Будем творить добро без меры и никому не желать зла.
Удачи вам.


--------------------
Пусть будет миру хорошо!
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) - крупнейший в рунете сборник материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C++ Builder | Следующая тема »


 




[ Время генерации скрипта: 0.0715 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.