barsunduk |
15.11.2011 21:14 |
Ответ: Lib_imgs: выводим картинку на картинку
по просьбе трудящихся добавил возможность рисования на картинках нескольких основных примитивов:
PHP код:
// установить цвет пера для рисования на картинках (можно полупрозрачный) procedure imgsetcolor(color: integer); // получить цвет пера для рисования на картинках function imggetcolor: integer; // установить непрозрачность пера для рисования на картинках (0/1) procedure solid(value: integer); // получить состояние непрозрачности пера для рисования на картинках (0/1) function getsolid: integer; // линия на картинке function imgline(img: image; x1, y1, x2, y2: integer): image; // прямоугольник на картинке function imgrect(img: image; x, y, w, h: integer): image; // закрашенный прямоугольник на картинке function imgfillrect(img: image; x, y, w, h: integer): image; // эллипс на картинке function imgellipse(img: image; x, y, w, h: integer): image; // залитый эллипс на картинке function imgfillellipse(img: image; x, y, w, h: integer): image; // заливка на картинке function imgfill(img: image; x, y: integer): image; // сектор на картинке function imgarc(img: image; x, y, w, h, a1, a2: integer): image; // кривая на картинке (все опорные точки лежат на кривой) function imgbow(img: image; x1, y1, x2, y2, x3, y3: integer): image; // кривая на картинке (2-я опорная точка не лежит на кривой) function imgbezier(img: image; x1, y1, x2, y2, x3, y3: integer): image;
и немного поправил заливку экрана:
PHP код:
// быстрая заливка экрана цветом col procedure cls(col: integer); // заливка экрана полупрозрачным цветом col procedure clsa(col: integer); // заливка экрана procedure scrfill(x, y);
функции, как мог оптимизировал, но не обещаю скоростей на топорах.
хотя на картинках в основном рисует по самым шустрым алгоритмам брезенхама, битмапы то и дело конвертируются в картинки и наоборот.
треугольнички пока победить не смог, кривовато рисуются, надо править ..(
|