|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
30.09.2012, 16:03 | #1 |
Форумчанин
Регистрация: 19.04.2009
Сообщений: 368
|
загрузка рисунка в Image
Всем доброго времени суток. Задача такая:
Есть рисунок формата *.png. В нём не хватает в начале нескольких байт. Нужно не перезаписывая файл его загрузить в Image. Каким образом это можно реализовать ? |
01.10.2012, 00:52 | #2 |
personality
Старожил
Регистрация: 28.04.2009
Сообщений: 2,883
|
Прочитайте тему потоки ( Streams) в любом адекватном мануале/учебнике
Общий подход примерно такой: Создать поток размером с файл плюс те недостающие байты, данные из файла (можно для чтения файла задействовать второй поток) записать в поток по смещению на то количество байт, сколько не хватает (т.е. установить нужную позицию смещения и писать). Выставить позицию в 0, дописать нужные байты, я надеюсь, Вы их знаете (иначе вся затея бесполезна ). Опять выставить позицию в 0 и вызвать у TImage метод LoadFromStream , передавая ему Ваш поток. |
02.10.2012, 04:03 | #3 |
Форумчанин
Регистрация: 19.04.2009
Сообщений: 368
|
Начал с малого ) Загрузил картинку в поток, и через TPNGObject вывел в TImage
Да, кстати, пользуюсь Delphi7 Код:
Так, всё же, в чем может быть ошибка ? Почему картинка не выводится ? Последний раз редактировалось Stilet; 07.10.2012 в 16:34. |
07.10.2012, 16:34 | #4 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Хм... Наверное потому что сам Image1.Picture не создан... Это тебе скажет только пошаговка.
Я бы на твоем месте выводит на канву PaintBox-а, а не в Image.
I'm learning to live...
|
09.10.2012, 00:47 | #5 | |
Форумчанин
Регистрация: 19.04.2009
Сообщений: 368
|
С этим разобрался ... всё же рисунок вывел в TImage ... С TPaintBox пока ещё не разобрался
Код:
Распишу подробно, что и как делал, видимо где то что-то сделал не так Файл img.re: Цитата:
В самом проекте дописал: Код:
|
|
09.10.2012, 08:12 | #6 | ||
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
Цитата:
I'm learning to live...
|
||
09.10.2012, 21:02 | #7 |
Форумчанин
Регистрация: 19.04.2009
Сообщений: 368
|
ссылается на pngimage (ImageData[i] := pRGBQuad(@ImageSource[i2 * 3])^)
Код:
|
09.10.2012, 21:44 | #8 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
Т.е. я пытаюсь понять что эта строка делает, ибо уверен что нужно прописывать проверку, что возвращает @ImageSource[i2 * 3], не вылазит ли за пределы массива.
I'm learning to live...
|
|
09.10.2012, 23:23 | #9 |
Форумчанин
Регистрация: 26.07.2009
Сообщений: 489
|
Я думаю, что вначале этого файла должен быть заголовок, если он поврежден то у вас не получится просто так базовыми методами загрузить.
Если в глубине души вы программист, то, следуя своим наклонностям, вы захотите написать кусок кода.
|
10.10.2012, 00:02 | #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 |