IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Масштабирования растровых рисунков
сообщение
Сообщение #1


Гуру
*****

Группа: Пользователи
Сообщений: 1 117
Пол: Мужской
Реальное имя: Богдан

Репутация: -  11  +


Подскажите, пожалуйста, алгоритм масштабирования рисунков. Рисунок представляет собой двумерный массив, каждый елемент которого определяет цвет соответствующего пикселя на рисунке.

Сообщение отредактировано: Bokul -


--------------------
Лао-Цзы :
Знать много и не выставлять себя знающим есть нравственная высота. Знать мало и выставлять себя знающим есть болезнь. Только понимая эту болезнь, мы можем избавиться от нее.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2


Профи
****

Группа: Пользователи
Сообщений: 618
Пол: Мужской

Репутация: -  24  +


Вот, что я нашёл в обучалках асфиксии. На аглицком наречии, но всё же довольно неплохо написано.
Цитата
For the horizontal area, I am going to calculate a certain step value. I
will then trace along the bitmap, adding this step to my position, and
placing the nearest pixel on to the screen. Let me explain this simpler ...

Let us say I have a 10 pixel wide bitmap. I want to squish it into 5 pixels.
Along the bitmap, I would draw every second pixel to screen. In ascii :

1234567890 13579
+--------+ +---+
| | | |
| bitmap | | |dest
| | | |
+--------+ +---+

As you can see, by stepping through every second pixel, I have shrunk the
bitmap to a width of 5 pixels.

The equation is as follows :

step = origionalwidth / wantedwidth;

Let us say we have a 100 pixel wide bitmap, which we want to get to 20 pixels.

step = 100 / 20
step = 5

If we draw every fifth pixel from the origional bitmap, we have scaled it down
correctly! This also works for all values, if step is of type real.

We also find the step for the height in the same way.

Our horizontal loop is as follows :

For loop1:=1 to wantedwidth do BEGIN
putpixel (loop1,height,bitmap[round (curpos)],vga);
curpos:=curpos+xstep;
END;

And the vertical loop is much the same. Easy huh?


--------------------
Close the World...txeN eht nepO
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме
Bokul   Масштабирования растровых рисунков   22.08.2006 9:46
Bokul   С увеличениям в целое количество раз я вроде разоб…   22.08.2006 11:46
Бродяжник   Копайте в сторону билинейной фильтрации. Кое-что м…   22.08.2006 12:22
volvo   var zoomx, zoomy: real; procedure pzoom; var i,…   22.08.2006 12:25
klem4   Если конечно не обязательно работать с матрицой пи…   22.08.2006 20:52
volvo   klem4, а не работает :) Это во-первых. Объясни мн…   22.08.2006 21:18
klem4   У тебя одно и тоже выводится ?   22.08.2006 21:23
volvo   Конечно... А ничего другого я и не ждал... Смотри:…   22.08.2006 21:35
klem4   :blink: :!fie: И правда, соотношение то не …   22.08.2006 21:55
Bokul   А поподробнее можна? :rolleyes: volvo, спасибо, …   23.08.2006 8:01
klem4   По идее так и должно быть, не знаю почему у меня…   23.08.2006 16:33
Бродяжник   Bokul Чтобы это объяснить поподробнее, мне надо са…   23.08.2006 18:35
Archon   Вот, что я нашёл в обучалках асфиксии. На аглицком…   23.08.2006 19:33
klem4   Вот, реализовал свою идею :) Грубовато конечно, до…   25.08.2006 2:37
volvo   :blink: Я вот никак не могу понять, чего она так п…   25.08.2006 3:16
klem4   Думаю по тому, что картинка отображается попиксель…   25.08.2006 3:18
volvo   Ха... Да, ты прав... Это именно отрисовка тормозит…   25.08.2006 3:37
Bokul   klem4, не мог бы ты выложить файл с твоим кодом, а…   25.08.2006 3:51
volvo   Кстати, вот так будет ГОРАЗДО быстрее (PutPixel - …   25.08.2006 4:05
klem4   Bokul, держи   25.08.2006 13:15
Bokul   klem4, и с этим кодом у меня проблемы... :mega_cho…   25.08.2006 22:32
volvo   В FPC 2.0.0 прекрасно отрабатывает... (только я за…   25.08.2006 23:03
klem4   ммм Переключи клаву в режим латинских букв (кода к…   25.08.2006 23:48
Bokul   Не то, ни другое не подошло. Наверное у моего Fr…   26.08.2006 3:46
Bokul   array of array SetLength Я так понял что это о…   26.08.2006 4:05
volvo   У тебя полный дистрибутив? Тогда в файле /DOC/REF.…   26.08.2006 4:30
Bokul   Спасибо :good: , почитаем.   26.08.2006 4:36


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 18.09.2025 4:04
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name