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

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

Метод копирует фрагмент одного
изображения в другое изображение. Это очень удобно использовать в задачах, подобных расстановке значков на карте. В качестве параметров методу передаются:
·исходное изображение;  
·координаты (x1;y1) верхнего левого угла копируемого фрагмента;  
·ширина и высота копируемого фрагмента;  
·координаты (x2;y2), по которым будет вставлен копируемый фрагмент;  
·опционально - новая ширина и высота вставляемого фрагмента (в этом случае происходит масштабирование), а также величина, характеризующая точность передачи цвета; чем она меньше, тем точнее цветопередача, но количество передаваемых цветов при этом уменьшается, и наоборот (по умолчанию эта величина равна 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 пикселей и «растягиваем» этот фрагмент на всю ширину и высоту второго рисунка. Последняя строчка кода выводит увеличенный фрагмент на экран. Данный подход можно применять только для изображений, которые не требуется выводить с хорошим качеством.


Copyright © 1997–2024 Art. Lebedev Studio | http://www.artlebedev.ru Дата обновления: 10.09.2024