Picture.Copy

From SunFlurry wiki
Revision as of 13:30, 5 March 2020 by Admin (talk | contribs) (Created page with "{{infobox function |name=Copy |object=Картинка |caption=Копия картинки |type=1 |status=2 |db=0 |exception=Пустая картинка |visual=0}} {{...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search
  Copy (Копия картинки)
Объект:Картинка
Статус разработки: Реализована
Тип:Функция
Обращение к БД:Нет
Исключения:Пустая картинка
Визуальность:Нет

Функция создает копию содержимого картинки аргумента. Если картинка хранится в формате, отличном от BMP 8 или 32-бит, такая операция может занять достаточно много времени. В случае форматов 8 или 32-бит BMP, копия будет создана максимально быстро.

Синтаксис

Picture.Copy():<Новый объект - копия картинки (PICTURE)>

Возвращаемое значение

Возвращает новый объект картинки, имеющей такой же формат и содержимое, как и исходная.

Примеры

//Создадим картинку 1000 на 1000.
aPic:=Picture.Create(1000,1000,toRgb(255,255,255),32);
//Выведем 20000 случайных линий, случайной толщины, имеющими альфа 50%
randomize;
for i:=0 to 20000 do
  aPic.Line(random(1010)-5,random(1010)-5,random(1010)-5,random(1010)-5,toRgb(random(256),random(256),random(256)),Random(15)+1,1,500);
enddo;
//Создадим копию картинки
aPic2:=aPic.Copy();
//Добавим к рисунку радиально-исходящие красные линии
for i:=0 to 35 do
  x:=sin(radians(i*10))*450+500;
  y:=-cos(radians(i*10))*450+500;
  x2:=sin(radians(i*10))*100+500;
  y2:=-cos(radians(i*10))*100+500;
  aPic2.Line(x2,y2,x,y,toRgb(i/35*255,0,0),10,1,1000);
Enddo

//Сохраним первую картинку в файле Result.bmp
aPic.Save("c:\Result.bmp");
//Сохраним вторую картинку в файле Result2.bmp
aPic.Save("c:\Result2.bmp");