Язык скриптования сайтов Parser 3

Imagecopy


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 и «растягиваем» этот фрагмент на всю ширину и высоту второго рисунка. Последняя строчка кода выводит увеличенный фрагмент на экран. Данный подход можно применять только для изображений, которые не требуется выводить с хорошим качеством.



Содержание раздела