Преобразовать JPG или PNG в BMP22.06.2015, 18:02. Показов 9677. Ответов 15
Метки нет Все метки)
(
Есть код:
TMemoryStream *s = new TMemoryStream; TImage *Infile = new TImage(NULL); TJPEGImage *jpg = new TJPEGImage(); TPNGObject* png = new TPNGObject(); Вопрос : что я делаю не так?
0
|
22.06.2015, 18:02 | |
Ответы с готовыми решениями:
15
ListView загрузка изображения (jpg, png, bmp) |
![]() ![]() |
|
22.06.2015, 18:45 | |
0
|
22.06.2015, 19:48 [ТС] | |
Окей.
Сформулирую вопрос иначе : Как сделать преобразование картинки из одного формата в другой, чтобы при этом не появлялась данная ошибка?
0
|
![]() ![]() |
|
22.06.2015, 21:04 | |
0
|
22.06.2015, 23:47 [ТС] | ||||||
Avazart, я что-то не пойму!
Не по теме: jpg->LoadFromStream(s);
0
|
23.06.2015, 23:50 [ТС] | |||||||||||||||||||||
Сделал костыль:
P.S. Если у Вас есть мысли по этому поводу, то поделитесь. Кроме того появилась другая ошибка : некорректность загружаемого файла(файл 12).
![]() Помогите решить проблему. Сам пытался:
Заранее спасибо.
0
|
![]() ![]() |
|
24.06.2015, 00:41 | |
Вы точно нормальные файлы скармливаете? Смотрите на вами залитю вторую картинку - расширение не соответствует истинному формату - откройте изображение в текстовом/hex - редакторе и обратите на первые символы в нем.
Есть вроде ExtractFilleExt() для изьятия расширения.
1
|
Практикантроп
![]() 4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
|
|||||||||||
24.06.2015, 08:52 | |||||||||||
![]() Решение
Чтобы этот фрагмент заработал, я переделал его след. образом__
Добавлено через 10 минут а для загрузки с потока (из ресурсов приложения) - вот пример__
1
|
24.06.2015, 17:22 [ТС] | ||||||
Avazart, попробовал я ExtractFilleExt() - показывает, что файл имеет тип png
А как программно узнать тип файла? Чтобы избежать таких ошибок.
0
|
![]() ![]() |
|
24.06.2015, 17:26 | |
Не тип а расширение, еу? Судя по всему вы не понимаете что такое расщширение файла и его реальный тип/формат
А можно на.... посылать тек кто посовывает файлы с неправильным расширением.
0
|
Практикантроп
![]() 4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
|
|
24.06.2015, 17:27 | |
![]() Решение
Думаю, надо считать в буфер начальный блок файла и проанализировать его, вооружившись описаниями стандартов. Потому что более точную информацию взять неоткуда, - расширение может поменять любой мало-мальски грамотный октябрёнок.
0
|
24.06.2015, 17:28 [ТС] | |
Avazart, ну а как получить тип? Как докопаться до истины?
0
|
![]() ![]() |
|
24.06.2015, 17:30 | |
0
|
24.06.2015, 17:32 [ТС] | ||||||
В hex:
Не по теме: Avazart, спасибо! Вы "очень" сильно помогли!
0
|
![]() ![]() |
|
24.06.2015, 17:33 | |
Или тупо пытаться открыть всеми возможными способами по очереди скрывая ошибки в блоке catch() такой себе ленивый способ.
Естественно изначально ориентироваться на расширения, а если нет - попытки открыть как оставщиеся форматы.
0
|
24.06.2015, 18:05 [ТС] | ||||||
Ну,как-то так:
0
|
24.06.2015, 18:05 | ||||||
Помогаю со студенческими работами здесь
16
Как сделать программно из BMP (JPG, PNG) - ICO Сохранение изображения в различных форматах (jpg, png, bmp)
Искать еще темы с ответами Или воспользуйтесь поиском по форуму:
|
|
Новые блоги и статьи
![]() |
||||
Агрегаты и сущности в DDD микросервисах
Javaican 10.04.2025
Разработка современных программных систем часто приводит на распутье: монолит или микросервисы? Даже при выборе микросервисной архитектуры многие команды сталкиваются с проблемой правильного. . .
|
Многопоточность в C#: Task и параллельное программирование
UnmanagedCoder 10.04.2025
Современные процессоры уже давно перестали наращивать тактовую частоту в пользу увеличения количества ядер. Это создало интересную ситуацию: разработчики, привыкшие к последовательному. . .
|
Линейное решение нелинейной задачи будет применено как метод обработки данных из double buffering. Формулы от LM конечно с ошибками.
Hrethgir 10.04.2025
В продолжение
Эта LM дала ответ похожий на нормальный.
В комментриях мой комментарий - похоже она ошиблась с выведением итоговой формулы, но остальные проверю.
Assistant
qwen2. 5-14b-instruct
. . . .
|
Переменные в Python
py-thonny 10.04.2025
Переменная в программировании — это символическое имя, связанное с областью памяти, в которой хранится значение. Она позволяет получать доступ к данным через понятные человеку идентификаторы, а не. . .
|
Многопоточность в C#: Task и асинхронные операции
UnmanagedCoder 10.04.2025
Многопоточность позволяет выполнять несколько операций одновременно, что важно для решения двух основных задач: повышения скорости выполнения вычислительно-сложных операций и сохранения отзывчивости. . .
|
Линейное решение не линейной задачи (емкость вычислений в сравнении с традиционными решениями пока не определена).
Hrethgir 10.04.2025
В рамках предстоящих вычислений пришлось (да, я тоже знаю про корень числа, и про степеня, и прочие теоремы, но. . . ) найти способ нахождения отношения двух углов. . . .
|
Запуск контейнеров Docker на ARM64
Mr. Docker 09.04.2025
Появление таких решений, как Apple M1/ M2, AWS Graviton, Ampere Altra и Raspberry Pi, сделало использование ARM-систем обыденностью для многих разработчиков и DevOps-инженеров. При этом Docker,. . .
|
Vue SFC компонент на PHP с Fusion
Jason-Webb 09.04.2025
PHP на сервере и JavaScript на клиенте — классическое сочетание, которое, несмотря на свою эффективность, создает определенный когнитивный диссонанс при разработке. В этом контексте появляются. . .
|
TypeScript vs JavaScript: Отличия и когда что использовать
Reangularity 09.04.2025
JavaScript появился в 1995 году как творение Брендана Эйха и быстро стал основой интерактивности в вебе. За свою историю он прошел путь от простого языка для манипуляций с DOM до полноценной. . .
|
Подключение Kafka к Elasticsearch
Codd 09.04.2025
Apache Kafka и Elasticsearch — две мощные технологии, которые при совместном использовании создают эффективную платформу для обработки и анализа данных в реальном времени. Kafka, выступая в роли. . .
|