Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.59/29: Рейтинг темы: голосов - 29, средняя оценка - 4.59
161 / 101 / 22
Регистрация: 11.05.2009
Сообщений: 628

Из TJPEGImage в TBitmap

04.12.2010, 22:57. Показов 6162. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток!!!
Использую класс TJPEGImage для загрузки *.jpg картинок в проект. В последствии картинка, загруженная в объект TJPEGImage передаётся объекту TBitmap следующим образом:

C++
1
2
jpeg->LoadFromFile(file);
bitmap->Assign(jpeg);
В большинстве случаев это работает, но если загрузить картинку в *.jpg с цветовой палитрой, к примеру Grayscale, проект выдаёт ошибку Access violation.
Как это убрать?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
04.12.2010, 22:57
Ответы с готовыми решениями:

Из char[] в TJPEGImage
ЕстьTJPEGImage *JPG = new TJPEGImage(); и char jpeg; в котором содержится картинка в формате jpeg, как эти данные загрузить в JPG; ...

TJpegImage в TBitmap, и как можно использовать Canvas для JPEG без потери качества!
Доброго времени суток. Мне интересно если перегонять TJpegImage в TBitmap таким способом: uses Jpeg; ......................... ...

Tbitmap.create и Tbitmap.scanline
Если после создания bitmap-а загрузить изображение (loadfromfile()) то изменение пикселей через scanline работает правильно, но если bitmap...

4
Эксперт С++
 Аватар для MikeSoft
3957 / 1812 / 184
Регистрация: 21.11.2009
Сообщений: 2,540
04.12.2010, 23:11
VtaMC, выложите пожалуйста изображение (в архиве) с которым данный метод вызывает ошибку. Хочется на это взглянуть.
0
161 / 101 / 22
Регистрация: 11.05.2009
Сообщений: 628
05.12.2010, 10:22  [ТС]
Вот, в Photoshop там дефолтно стоит цветовая палитра Grayspace
Вложения
Тип файла: zip ny-12.zip (956.7 Кб, 36 просмотров)
0
Эксперт С++
 Аватар для MikeSoft
3957 / 1812 / 184
Регистрация: 21.11.2009
Сообщений: 2,540
05.12.2010, 13:52
VtaMC, работает и с этим изображением, без проблем:
C++
1
2
3
4
5
6
7
8
9
TJPEGImage *jpg = new TJPEGImage();
jpg->LoadFromFile("ny-12.jpg");
Graphics::TBitmap *bmp = new Graphics::TBitmap();
bmp->Assign(jpg);
Canvas->StretchDraw(TRect(0,0,650,450),bmp);
delete jpg;
jpg = NULL;
delete bmp;
bmp = NULL;
На всякий случай, прикреплю и весь проект, созданный в RAD Studio XE.
Вложения
Тип файла: rar JPEGtoBMP.rar (1.46 Мб, 111 просмотров)
1
161 / 101 / 22
Регистрация: 11.05.2009
Сообщений: 628
05.12.2010, 21:19  [ТС]
MikeSoft, спасибо. Выяснил истинную причину проблемы: ошибку выдавал не метод Assign, а функция сглаживания, которая работает только с RGB изображениями.

Добавлено через 20 минут
Нашел выход: установил pixelFormat на 24 бита

C++
1
bitmap->PixelFormat = pf24bit;
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
05.12.2010, 21:19
Помогаю со студенческими работами здесь

TJPEGImage to Base64Binary
Перевод картинки в строку Base64Binary: 1) Выбор картинки формата jpeg 2) Отображение картинки на форме (TImage ?) 3) Перевод...

Очистка массива от TJpegImage ?!
Ребята знаю пост глупый но я начинаю считать себя полным ламером. Суть - Есть масив в который загружаю из потока картинку jpg, после...

Компонент TJPEGImage не сохраняет изображение
Здравствуйте. Есть функция(наложение изображения): void GenerateTransparenceImage(String Key, TImage *Infile, TImage *Outfile,...

Не работает метод Compress для TJpegImage
Всем добрый день. Хочу воспользоваться методом Compress для TJpegImage. Написал тестовую процедуру.var jpg: TJpegImage; bmp:...

Как передать картинку (TJPEGImage) размером до 3 мб?
какие для этого есть компоненты? TSOCKET.. пробывал - не идет


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru