![]() |
|
|
![]()
|
|
| Loki_ |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 13.10.2003 Репутация: нет Всего: нет |
Есть какой - нибудь алгоритм.
|
|||
|
||||
| Secandr |
|
|||
|
Связист ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4043 Регистрация: 3.8.2003 Где: Russia, Volgograd Репутация: нет Всего: 39 |
Я над этим думал.
Можно хранить несколько картинок разного размера и вырезать нужный кусок |
|||
|
||||
| dr.ZmeY |
|
|||
|
Политолог ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3892 Регистрация: 26.3.2002 Где: ..::STALINGRAD::. . Репутация: нет Всего: 60 |
Не эффективно... В памяти хранить один оригинал... а при массштабировании на канву переписывать массив с усреднённым цветом квадрата соседних точек, в зависимости от крат уменьшения (масштаба), выбирать квадрат с определённым числом точек в грани... это при уменьшении (меньше оригинала) При увеличении, также в зависимости от масштаба, превращаешь один пиксель в квадрат пикселей с нужным числом точек в ребре... это при увеличении (больше оригинала)... От сюда выгода, в памяти храним только оригинал, а на канву переписываем массив с изменённым числом точек, в отличае от оригинала... |
|||
|
||||
| mi49.Ok |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 94 Регистрация: 14.12.2003 Где: Irk Репутация: нет Всего: 1 |
У меня тут брательник токое на Delphi лабал. Короче надо так.
1)Грузишь картинку. 2)Выделяешь область для увеличения. 3)Тыкаешь кнопку для увеличения. 4)Предыдущая картинка(исходная) заменяется на новую, ту которую ты выделил. Заменяется с теми же размерами. Тогда будет пикселизация. 5)Тут надо плавно менять градацию цвета, переход цвета от белого к черному, например будет таким: белый, сероватый, посероватее, почернявее, чернее, чёрный. Примерно так. Картинка будет получаться немного рамытой, как в играх. Ставишь Software - всё кубиками, ставищь Direct3D или OpenGL - все картинки расплываются. Ну ты меня понял. 6)Вообщем то и всё. Других способов не знаю. |
|||
|
||||
| maxim1000 |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3334 Регистрация: 11.1.2003 Где: Киев Репутация: 33 Всего: 110 |
тут все зависит от того, для каких изображений и в каких условиях тебе это нужно
мне вот недавно довелось делать zoom для фотографии, и это нужно было делать очень быстро сделал так: по горизонтали (по вертикали аналогично): пусть n - старый размер, m - новый растягиваем строку в m раз, потом сжимаем в n при сжатии просто берется каждая n-я точка, остальные выбрасываются ну, конечно, никто не хранил растянутую строку в памяти, но логика программы была именно такая а по вертикали проводишь те же операции, только не с точками, а со строками если время не критично, конечно, лучше усреднять цвет - качество может оказаться получше а если времени совсем много, можно разложить изображение по Фурье, а потом по этим коэффициентам сделать новое с другими размерами, не пробовал, но думаю, что качество будет еще лучше -------------------- qqq |
|||
|
||||
![]()
|
| Правила форума "Алгоритмы" | |
|
|
Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Алгоритмы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |