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

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

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

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


Гуру
*****

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

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


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

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


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


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

 



- Текстовая версия 23.06.2025 18:30
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"