copy. Копирование фрагментов изображений


^картинка.copy[исходное_изображение](x1;y1;ширина1;высота1;x2;y2)
^картинка.copy[исходное_изображение](x1;y1;ширина1;высота1;x2;y2;ширина2;высота2;приближение цвета)

Метод копирует фрагмент одного
изображения в другое изображение. Это очень удобно использовать в задачах, подобных расставлению значков на карте. В качестве параметров методу передаются:

1. Исходное изображение  
2. координаты (X1;Y1) верхнего левого угла копируемого фрагмента  
3. ширина и высота копируемого фрагмента  
4. координаты (X2;Y2) по которым будет вставлен копируемый фрагмент  
5. в качестве необязательных параметров могут быть заданы новая ширина и высота вставляемого фрагмента (в этом случае происходит масштабирование), а также величина, характеризующая точность передачи цвета. Чем она меньше, тем точнее цветопередача, но количество передаваемых цветом уменьшается и наоборот (по умолчанию равна 150)  

Пример

$mygif[^image::load[test.gif]]

$resample_width($mygif.
width*2)
$resample_height($mygif.height*2)

$mygif_new[^image::
create($resample_width;$resample_height)]
^mygif_new.
copy[$mygif](0;0;20;30;0;0;$mygif_new.width;$mygif_new.height)

$
response:body[^mygif_new.gif[]]
В данном примере мы создаем два объекта класса
image. Первый создан на основе существующего GIF файла. Второй - вдвое больший по размеру, чем первый, создается самим Parser, после чего в него мы копируем фрагмент первого размером 20х30 и «растягиваем» этот фрагмент на всю ширину и высоту второго рисунка. Последняя строчка кода выводит увеличенный фрагмент на экран. Данный подход можно применять только для изображений, которые не требуется выводить с хорошим качеством.

    Поддержать сайт на родительском проекте КГБ