![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Форумчанин
Регистрация: 19.04.2009
Сообщений: 368
|
![]()
Всем доброго времени суток. Задача такая:
Есть рисунок формата *.png. В нём не хватает в начале нескольких байт. Нужно не перезаписывая файл его загрузить в Image. Каким образом это можно реализовать ? |
![]() |
![]() |
![]() |
#2 |
personality
Старожил
Регистрация: 28.04.2009
Сообщений: 2,899
|
![]()
Прочитайте тему потоки ( Streams) в любом адекватном мануале/учебнике
Общий подход примерно такой: Создать поток размером с файл плюс те недостающие байты, данные из файла (можно для чтения файла задействовать второй поток) записать в поток по смещению на то количество байт, сколько не хватает (т.е. установить нужную позицию смещения и писать). Выставить позицию в 0, дописать нужные байты, я надеюсь, Вы их знаете (иначе вся затея бесполезна ![]() |
![]() |
![]() |
![]() |
#3 |
Форумчанин
Регистрация: 19.04.2009
Сообщений: 368
|
![]()
Начал с малого ) Загрузил картинку в поток, и через TPNGObject вывел в TImage
Да, кстати, пользуюсь Delphi7 Код:
Так, всё же, в чем может быть ошибка ? Почему картинка не выводится ? Последний раз редактировалось Stilet; 07.10.2012 в 16:34. |
![]() |
![]() |
![]() |
#4 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]()
Хм... Наверное потому что сам Image1.Picture не создан... Это тебе скажет только пошаговка.
Я бы на твоем месте выводит на канву PaintBox-а, а не в Image.
I'm learning to live...
|
![]() |
![]() |
![]() |
#5 | |
Форумчанин
Регистрация: 19.04.2009
Сообщений: 368
|
![]()
С этим разобрался ... всё же рисунок вывел в TImage ... С TPaintBox пока ещё не разобрался
![]() Код:
Распишу подробно, что и как делал, видимо где то что-то сделал не так Файл img.re: Цитата:
В самом проекте дописал: Код:
|
|
![]() |
![]() |
![]() |
#6 | ||
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]() Цитата:
Цитата:
I'm learning to live...
|
||
![]() |
![]() |
![]() |
#7 |
Форумчанин
Регистрация: 19.04.2009
Сообщений: 368
|
![]()
ссылается на pngimage (ImageData[i] := pRGBQuad(@ImageSource[i2 * 3])^)
Код:
|
![]() |
![]() |
![]() |
#8 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]() Цитата:
Т.е. я пытаюсь понять что эта строка делает, ибо уверен что нужно прописывать проверку, что возвращает @ImageSource[i2 * 3], не вылазит ли за пределы массива.
I'm learning to live...
|
|
![]() |
![]() |
![]() |
#9 |
Форумчанин
Регистрация: 26.07.2009
Сообщений: 489
|
![]()
Я думаю, что вначале этого файла должен быть заголовок, если он поврежден то у вас не получится просто так базовыми методами загрузить.
Если в глубине души вы программист, то, следуя своим наклонностям, вы захотите написать кусок кода.
|
![]() |
![]() |
![]() |
#10 | |
Форумчанин
Регистрация: 19.04.2009
Сообщений: 368
|
![]() Цитата:
да сейчас с целым файлом разобраться бы ... |
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Загрузка рисунка из TStream | cargo29 | Мультимедиа в Delphi | 17 | 12.07.2011 13:57 |
Увеличение ширины Image без растягивания рисунка | artemavd | Общие вопросы Delphi | 20 | 28.01.2011 17:40 |
Вставка рисунка, сохраненного из Image в MS Word | artemavd | Общие вопросы Delphi | 0 | 22.08.2010 14:48 |
Загрузка рисунка | Ilya9999 | Microsoft Office Excel | 9 | 27.05.2010 21:52 |
Загрузка рисунка из мемо!!! | Vito89 | Общие вопросы Delphi | 5 | 10.06.2009 13:48 |