|
Вопрос # 4 648/ вопрос открыт / |
|
Приветствую, уважаемые эксперты!
Мне дано изображение загружаемое из файла, 24 битное
BMP:=TBitmap.Create;
Image1.Canvas.Draw(0,0,bmp);
подскажите как сохранить в масив попиксельно это изображение,
а после этот мосив снова воспроизвести в картинку.
 |
Вопрос задал: Volt-norD (статус: Посетитель)
Вопрос отправлен: 11 октября 2010, 19:15
Состояние вопроса: открыт, ответов: 1.
|
Ответ #1. Отвечает эксперт: Вадим К
Здравствуйте, Volt-norD!
Решение в лоб. Достучаться до каждого пикселя можно через свойство pixels[x, y]. Как читать, так и писать.
поэтому код выглядит так
var i,j:integer;
begin
for i:= 0 to bmp.width - 1 do
for j:= 0 to bmp.height-1 do
massiv[i,j] := bmp.canvas.pixels[i,j]; // читаем с "картинки" в массив
// или эту строку наоборот
bmp.canvas.pixels[i,j] := massiv[i,j]; // читаем с массива в "картинку"
end;
И все. главное обеспечить место в массиве.
Другое дело, что эта функция не супер быстрая. Для этого достаточно погуглить на тему метода ScanLine.
 |
Ответ отправил: Вадим К (статус: Академик)
Время отправки: 11 октября 2010, 20:31
Оценка за ответ: 4
|
Мини-форум вопроса
Всего сообщений: 10; последнее сообщение — 15 октября 2010, 10:32; участников в обсуждении: 3.
|
min@y™ (статус: Доктор наук), 12 октября 2010, 14:12 [#1]:
Цитата (Volt-norD):
подскажите как сохранить в масив попиксельно это изображение, а после этот мосив снова воспроизвести в картинку.
Хотелось бы узнать, зачем это нужно?
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
Вадим К (статус: Академик), 12 октября 2010, 14:44 [#2]:
ну может человек хочет наложить какой то спецэффект.
Галочка "подтверждения прочтения" - вселенское зло.
|
|
min@y™ (статус: Доктор наук), 12 октября 2010, 14:58 [#3]:
Цитата (Вадим К):
ну может человек хочет наложить какой то спецэффект.
Чой-то меня терзают смутные сомнения на счёт спецэффектов...
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
Вадим К (статус: Академик), 12 октября 2010, 15:06 [#4]:
хорошо, пойду ещё дальше - может он хочет сохранить картинку в какой то экзотический формат. Например xwd.
Галочка "подтверждения прочтения" - вселенское зло.
|
|
min@y™ (статус: Доктор наук), 12 октября 2010, 15:11 [#5]:
Цитата (Вадим К):
хорошо, пойду ещё дальше - может он хочет сохранить картинку в какой то экзотический формат. Например xwd.
Тогда почему массив, а не TMemoryStream, например?
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
Вадим К (статус: Академик), 12 октября 2010, 15:15 [#6]:
ну так само собой напрашивается - "массив пикселей". не поток пикселей, не кучка
Да и с массивом может быть проще работать.
А может все проще. Просто преподаватель такое попросил. И все.
Галочка "подтверждения прочтения" - вселенское зло.
|
|
min@y™ (статус: Доктор наук), 12 октября 2010, 15:18 [#7]:
Цитата (Вадим К):
А может все проще. Просто преподаватель такое попросил. И все.
Вполне возможно. Поработав не один год экспертом, я уже перестал удивляться тупости некоторых преподов, которые сами не знают, что преподают.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
12 октября 2010, 22:09: Вопрос перемещён из тематического раздела Delphi » Общие вопросы по программированию в раздел Delphi » Графика (2D и 3D) в приложениях модератором Ерёмин А.А.
|
Byte (статус: Посетитель), 15 октября 2010, 01:15 [#8]:
min@y™: Просто плюс стопицоттыщ!
|
|
min@y™ (статус: Доктор наук), 15 октября 2010, 08:45 [#9]:
Цитата (Byte):
Просто плюс стопицоттыщ!
Ты о чём? Не понял...
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
Byte (статус: Посетитель), 15 октября 2010, 10:32 [#10]:
min@y™: Я соглашаюсь с тобой насчет тупости некоторых преподов)(Твое предыдущее сообщение в этом мини-форуме).
|
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|