Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Мультимедиа в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.01.2008, 11:17   #1
SmilingBull
Новичок
Джуниор
 
Аватар для SmilingBull
 
Регистрация: 17.01.2008
Сообщений: 2
По умолчанию Вывод картинки попиксельно

Здравствуйте, уважаемые эксперты!
бьюсь вот на какой проблемой.
мне нужно собраться полинейно рисунок (пиксельные линии должны появляться в хаотичном порядке). Должно осуществляться с использованием "ScanLine" (работа с Bitmap). По простому, загрузил bmp рисунок, вызвал процедуру, рисунок пропал и по пиксельно в хаотичном порядке начал вырисовываться
не могу разобраться, примеры почитал, но увы...
Спасибо
Смейся, и весь мир будет смеяться вместе с тобой!
Плачь, и ты будешь плакать в одиночестве...
SmilingBull вне форума Ответить с цитированием
Старый 17.01.2008, 22:01   #2
mutabor
Телепат с дипломом
Старожил
 
Аватар для mutabor
 
Регистрация: 10.06.2007
Сообщений: 4,929
По умолчанию

Не совсем понятно, как все таки: полинейно или попиксельно?
Хотя принцип тот же.
1. Очищаем канву от целого изображения.
Далее в цикле или по таймеру:
2. Функцией Random получаем случайные координаты точки (или линии, в дальнейшем будет иметься в виду точка). Диапазон для Random - размеры картинки. Если эта точка отмечена как уже выведенная, увеличиваем координаты на единицу пока не наткнемся на еще не выведенную.
3. Отмечаем эту точку как уже выведенную. Увеличиваем счетчик выведенных пикселей. Рисуем точку на канве. Если счетчик равен общему числу пикселей - цель достигнута, завершаем процедуру.
Механизм отметки может быть каким угодно, самый простой - создание матрицы булевых значений, размеры матрицы такие же как и у выводимого рисунка.
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог
mutabor вне форума Ответить с цитированием
Старый 17.01.2008, 23:54   #3
BOBAH13
Android Developer
Старожил Подтвердите свой е-майл
 
Аватар для BOBAH13
 
Регистрация: 19.02.2007
Сообщений: 3,708
По умолчанию

И лучше такие дела помещайте в потоки Если есть у основной формы интерфейс конечно.
BOBAH13 вне форума Ответить с цитированием
Старый 18.01.2008, 09:29   #4
SmilingBull
Новичок
Джуниор
 
Аватар для SmilingBull
 
Регистрация: 17.01.2008
Сообщений: 2
По умолчанию

Цитата:
Сообщение от mutabor Посмотреть сообщение
Не совсем понятно, как все таки: полинейно или попиксельно?
Хотя принцип тот же.
1. Очищаем канву от целого изображения.
Далее в цикле или по таймеру:
2. Функцией Random получаем случайные координаты точки (или линии, в дальнейшем будет иметься в виду точка). Диапазон для Random - размеры картинки. Если эта точка отмечена как уже выведенная, увеличиваем координаты на единицу пока не наткнемся на еще не выведенную.
3. Отмечаем эту точку как уже выведенную. Увеличиваем счетчик выведенных пикселей. Рисуем точку на канве. Если счетчик равен общему числу пикселей - цель достигнута, завершаем процедуру.
Механизм отметки может быть каким угодно, самый простой - создание матрицы булевых значений, размеры матрицы такие же как и у выводимого рисунка.
Спасибо за науку!!! все получилось
у меня проблема была именно в том, что свойство Scanline доступно только для чтения, создав промежуточную переменную хранящую ссылку на данный объект получилось менять их
Смейся, и весь мир будет смеяться вместе с тобой!
Плачь, и ты будешь плакать в одиночестве...
SmilingBull вне форума Ответить с цитированием
Старый 18.01.2008, 09:37   #5
Iceman
Форумчанин
 
Регистрация: 08.07.2007
Сообщений: 154
По умолчанию

а на фотку 3200 на 3200 тоже массив болеанов?
Iceman вне форума Ответить с цитированием
Старый 18.01.2008, 18:35   #6
mutabor
Телепат с дипломом
Старожил
 
Аватар для mutabor
 
Регистрация: 10.06.2007
Сообщений: 4,929
По умолчанию

Цитата:
Сообщение от Iceman Посмотреть сообщение
а на фотку 3200 на 3200 тоже массив болеанов?
Есть предложение как это сделать с меньшими затратами памяти?
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог
mutabor вне форума Ответить с цитированием
Старый 11.01.2011, 02:01   #7
Fel
Новичок
Джуниор
 
Регистрация: 13.01.2009
Сообщений: 1
По умолчанию

не удержался ответить на очивидный вопрос
Код:
array[0..(KolvoBit-1)div 256] of set of byte;
хотя может дельфи само оптимизирует массив булеанов...
Fel вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как из .BMP считать попиксельно OrdJONY Мультимедиа в Delphi 7 17.08.2008 15:46
вывод картинки *.png на экран телефона furstenberg Общие вопросы по Java, Java SE, Kotlin 3 31.07.2008 22:07
Картинки... Altera Свободное общение 5 24.07.2008 05:41
Картинки Rio309 Мультимедиа в Delphi 4 10.02.2008 00:36
Нужно решить и объяснить задачу "В режиме точечной графики попиксельно вывести фразу" Eyeless Фриланс 3 10.01.2008 10:56