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

 
TJPEGImage, перенести на Bitmap
Pirs
Отправлено: 05.03.2004, 00:48


Дежурный стрелочник

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



Не пойму как из объекта TJPEGImage, после того как в него через LoadFromFile(), загружен файл, как вывести из него картинку на нужный мне TBitmap ?
Методы вроде:
bitmap->Assign(jpgpicture) дают черный квадрат
Maxman
Отправлено: 05.03.2004, 08:07


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







Проверил все работает

TJPEGImage* jpgpicture = new TJPEGImage();
jpgpicture->LoadFromFile("1.jpg");
Graphics::TBitmap* bitmap = new Graphics::TBitmap;
bitmap->Assign(jpgpicture);
Image1->Picture->Assign(bitmap);
Pirs
Отправлено: 05.03.2004, 17:22


Дежурный стрелочник

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



Сомневался, но все таки решил написать, хотя все будут смеятся. В первые раза открывал картинку Rtcolwi1.jpg(340х500) , которая из каких-то папок Worda2000. Там космонавт летит на фоне черного космоса.Так вот компонент Image в который через Аssign грузилась картинка, был маленький где-то 50х50, и надо же! как раз этот верхний угол попадал на фон черного космоса и в итоге Timage был черный, а поскольку маленького размера, то остальной картинки не было видно и я решил, что делаю что-то неправильно. Вывод: грузите картинки которые подходят под размер компонента.
Asher
Отправлено: 05.03.2004, 20:13


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

Группа: Модератор
Сообщений: 550



Привет всем.
QUOTE
Вывод: грузите картинки которые подходят под размер компонента.

или не забывайте про свойство Stretch
olegenty
Отправлено: 06.03.2004, 08:28


Ветеран

Группа: Модератор
Сообщений: 2412



Или пользутесь ImageLib, имеющий место на закрытом форуме.
Pirs
Отправлено: 06.03.2004, 11:11


Дежурный стрелочник

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



Я пользовал раньше ImageEn, но лишний мегабайт к ехе. ради загрузки jpg ?
olegenty
Отправлено: 06.03.2004, 15:25


Ветеран

Группа: Модератор
Сообщений: 2412



Мегабайто мбольше, или меньше, это смотри на структуру клиентских машин. У нас сейчас стандарт: цилера 2000 + 256 RAM. Веришь-нет, плюс-минус мегабайт — не критично. Так чего тогда оптимизировать сию мелочь, если всё летает на ура, а напрягаться не надо :-))
Gedeon
Отправлено: 09.03.2004, 10:25


Ветеран

Группа: Модератор
Сообщений: 1742



QUOTE (olegenty @ 06/03/2004, 16:27)
Мегабайто мбольше, или меньше, это смотри на структуру клиентских машин. У нас сейчас стандарт: цилера 2000 + 256 RAM. Веришь-нет, плюс-минус мегабайт — не критично. Так чего тогда оптимизировать сию мелочь, если всё летает на ура, а напрягаться не надо :-))

Ну не совсем я с этим согласен, тоже у нас стоят машины не слабые и летает все, но как-то остается еще самоуважение, что ли не знаю как это назвать, а все проблемы опять же из-за бездарно сделаного борландом компилер+линкер, который к проекту лепит все, что есть в библиотеке, не разбираясь, что используется, а что нет. В последнее время все чаще посещает мысль отказаться от билдера и перейти на Visual C++. Хотя обидно когда-то компиляторы борланда были лучшими.
olegenty
Отправлено: 09.03.2004, 14:28


Ветеран

Группа: Модератор
Сообщений: 2412



Идейно я с тобой согласен, но состояние нашей разработки и условий сейчас таково, что я вынужден в основном упирать работу в максимум функциональности при минимуме времени на разработку. Сам понимаешь, если велосипед уже сделан, я не буду разбираться сам. А оптимизацию/разборки сделаю чуть позже. Всё равно стараюсь писать классово, просто ядро подправлю (как в случае с VersionInfo).
olegenty
Отправлено: 09.03.2004, 14:34


Ветеран

Группа: Модератор
Сообщений: 2412



А вот насчёт Visual... Я давно об этом думал. VC++ 6 при визуализации вынуждал всё прописывать руками... Увы, я пишу и середину, и интерфейс. Если бы я писал только середину, я бы выбрал именно VС++, и только из-за интерфейса пишу на Buildere. А если совсем честно, вернуть меня чуть-чуть назад, года на 4, и я стал бы работать на связке Visual C++ + Visual Basic. Ядро на Visual C++, интерфейс — на Visual Basic.
Gedeon
Отправлено: 09.03.2004, 14:44


Ветеран

Группа: Модератор
Сообщений: 1742



Сейчас есть Visual C# от мелкомягких — очень мне понравился.
olegenty
Отправлено: 09.03.2004, 16:42


Ветеран

Группа: Модератор
Сообщений: 2412



Отошли от темы... ))
К сожалению, в С# нет множественного наследования, к которому я привык.
Плюс, надо контролы искать. Я с деревьями (состав автомобиля/узла) работаю, привык к TElTree — дерево и грид в одном флаконе. Весь интерфейс на этом нарисован. Аналогичного ActiveX компонента не встречал. То же касается FIBPlus.

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