|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
26.02.2015, 19:39 | #1 |
Регистрация: 25.02.2015
Сообщений: 6
|
Использование GDI+ в делфи 7. Необходимо через GDI+ в делфи 7 получить из файла формата jpg файл формата bmp
Всем здравствуйте. Необходимо через GDI+ в делфи 7 получить из файла формата jpg файл формата bmp. Скачал архив с GDI+, распаковал и положил 6 файлов (DirectDraw.dcu, GDIPAPI.dcu, GDIPUTIL.dcu, GDIPOBJ.dcu, DirectX, Jedi) в каталог Lib, где стоит делфи. Потом когда я получил ошибку - скопировал эти же файлы и в проект (на всякий случай), но не помогло. Пишу код:
Код:
При запуске сначала появляется такое предупреждение [Предупреждение] Unit1.pas(98): Variable 'Image' might not have been initialized А затем вылазеет ошибка вот в таком окне: --------------------------- Debugger Exception Notification --------------------------- Проект Capcha.exe вызвал исключение класса EAccessViolation с сообщением 'Access violation at address 7C80980F in module 'kernel32.dll'. Write of address CED6E8D3'. Процесс остановлен. Используйте Шаг или Запуск для продолжения. --------------------------- OK Help --------------------------- Жму ОК, выскакивает окно: Исходник не найден GDIPOBJ.pas Путь к файлу: GDIPOBJ.pas Да, действительно файла GDIPOBJ.pas нет ни в папке с проектом, ни в папке Lib где стоит делфи. В то время как GDIPOBJ.dcu есть в обоих папках. Сам не знаю что думать: то ли делфи не создал GDIPOBJ.pas, то ли этот файл должен был войти в состав скачиваемого GDI+. Пожалуйста, помогите кто чем может... |
26.02.2015, 19:57 | #2 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Думаю не нарушу ничего прикрепив то что использовал у себя.
Если мои коллеги сочтут прикрепленный файл нежелательным, скажи, вышлю на почту.
I'm learning to live...
|
26.02.2015, 20:33 | #3 |
Регистрация: 25.02.2015
Сообщений: 6
|
GDI+
Спасибо, но теперь вот такие ругательства в модуле файла DirectDraw:
[Ошибка] DirectDraw.pas(173): Type 'IDirectDrawSurface' needs finalization - not allowed in variant record [Ошибка] DirectDraw.pas(180): Type 'IDirectDrawSurface' needs finalization - not allowed in variant record [Ошибка] DirectDraw.pas(190): Type 'IDirectDrawSurface' needs finalization - not allowed in variant record [Ошибка] DirectDraw.pas(197): Type 'IDirectDrawSurface' needs finalization - not allowed in variant record [Ошибка] DirectDraw.pas(209): Type 'IDirectDrawSurface' needs finalization - not allowed in variant record [Ошибка] DirectDraw.pas(590): Type 'IDirectDrawSurface' needs finalization - not allowed in variant record [Ошибка] DirectDraw.pas(592): Type 'IDirectDrawSurface' needs finalization - not allowed in variant record [Фатальная ошибка] DirectDraw.pas(5650): Could not compile used unit 'DXCommon.pas' |
26.02.2015, 21:12 | #4 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Про эту ошибку знаю, но не подскажу ничего.
По-моему я в местах этой ошибки прямо в исходниках строчки "рэмил", чтоб не всплывали. Чесслово, давно не работал с ним, просто не вспомню сейчас.
I'm learning to live...
|
26.02.2015, 21:25 | #5 |
Регистрация: 25.02.2015
Сообщений: 6
|
GDI+
Извиняюсь что не богат в слэнге программеров. Что значит "рэмил" - выделял ошибку, переходил на строчку модуля и комментировал строку (//)? Или что-то другое?
|
26.02.2015, 21:32 | #6 |
personality
Старожил
Регистрация: 28.04.2009
Сообщений: 2,882
|
Причина аксес виолейшена может крыться тут
Код:
Плюс надо бы проверить под дебагом, что за расширение возвращается. То что пишет, что файл не найден, дак тут всё как и должно быть - среда пытается показать строку в файле с кодом, начиная с которой процесс пришёл к АВ, но поскольку она лишь знает номер строки (читая из dcu взаимосвязи бинарного кода и строк исходника), её попытка открыть несуществующий пас-файл проваливается. Но к делу это не относится, это лишь следствие. ПС. отвечу за Stilet'a. ремил это значит комментировал, от команды rem из "языка" командной строки, команда эта делает нерабочей строку после неё до перевода строки, т.е. работает как комментарий. Крамольный вопрос спрошу - на кой ляд Вам GDI+, когда обычный Assign жпеговского объекта в битмаповский объект позволяет конвертировать графику (в сети мульён копий этого простого кода) ? ПС. Отвечу за Stilet'a. ремил это значит закомментировал, от команды rem из "языка" командной строки, означающей исключение последующего текста до перевода строки из обработки процессором команд, что по сути есть комментирование. ПС2. ошибки из директдровного модуля скорее всего сводятся к такой сути - в рекордах с указанием case нельзя использовать "большие" строки (string, ansistring) и динмассивы. Возможно, не совсем корректный перевод с с++ или не учтены какие-то инклюды/директивы. Последний раз редактировалось phomm; 26.02.2015 в 21:45. |
27.02.2015, 10:40 | #7 |
Форумчанин
Регистрация: 03.02.2010
Сообщений: 178
|
Как верно заметил товарищ phomm, GDI+ тут лишний.
Код:
|
27.02.2015, 11:31 | #8 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Если понадобится TIFF стандартные скорее всего обломаются.
I'm learning to live...
|
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Проблема с JPG скрином C++ используя gdi+ | Malriser | Win Api | 4 | 17.04.2015 13:41 |
Программа которая открывает файлы формата bmp и выводит содержимое файла на экран. | zhenia312 | Помощь студентам | 1 | 13.06.2014 16:11 |
GDI\GDI+\Photoshop - как добиться прозрачности пикселей определенного цвета? | STRELOK-2007 | Мультимедиа в Delphi | 12 | 11.01.2014 13:37 |
Mini Foto Redactor (Dev C++ WinAPI GDI+ Convert JPG to BMP and back) | kachkarvv | Софт | 12 | 09.08.2012 10:26 |
Файл формата rtf как справка в делфи | Грустная | Помощь студентам | 0 | 27.05.2012 11:24 |