akikidevel/gdimage

v1.0.7 2017-11-30 01:39 UTC

This package is not auto-updated.

Last update: 2024-09-29 04:49:30 UTC


README

$image = new akiki\gd\Image();
メソッドの説明には上の $image (インスタンス)を使います。

カラー要素は、255段階ではなく0.0〜1.0の正規化した値を使います。
角度は、0〜360(デグリー)を使います。

过滤器

绘制合成

显示输出

颜色操作

图形绘制

图像操作

生成新的 Image 实例

new akiki\gd\Image();
new akiki\gd\Image("FILE_PATH");
new akiki\gd\Image(WIDTH, HEIGTH);

void file(string $filepath)

文件读取(根据文件扩展名判断png/jpg/gif。在构造函数中调用 file()。)

$image->file("test.png");

void create(int $width, int $height)

创建指定尺寸的图像(在构造函数中调用 create()。)

$image->create(200, 300); // 横200 縦300 の透明画像を作成

void clear($rOrgba = 0.0, $g = 0.0, $b = 0.0, $a = 0.0)

使用指定的颜色清除图像。(指定值是,0〜1.0 A(透明度)0.0表示完全透明 1.0表示不透明)

$image->clear(); // 透明な黒で消去
$image->clear(1.0, 1.0, 1.0, 1.0); // 白で消去
$rgba = (object) { "r" => 0.0, "g" => 0.0, "b" => 0.0, "a" => 0.0 };
$image->clear($rgba); // rgba objectを使ってクリアカラーの指定

object getSize()

获取图像的尺寸(object)

$size = $image->getSize();
echo $size->width; // 横幅
echo $size->height;// 高さ

object getRect()

获取图像的尺寸(object)

$rect = $image->getRect();
echo $rect->x;     // 0
echo $rect->y;     // 0
echo $rect->width; // 横幅
echo $rect->height;// 高さ

int packColor($rOrgba = 0.0, $g = 0.0, $b = 0.0, $a = 0.0)

将指定的颜色转换为int并返回。(指定值是,0〜1.0 A(透明度)0.0表示完全透明 1.0表示不透明)

$image->packColor(); // 透明な黒
$image->packColor(1.0, 1,0, 1.0, 1.0); // 不透明な白
$rgba = (object) { "r" => 0.0, "g" => 0.0, "b" => 0.0, "a" => 0.0 };
$image->packColor($rgba); // rgba objectを使ってrgbaを指定(透明な黒)

void fGrayscale()

将图像转换为灰度(黑白)

$image->fGrayscale();

void fSepia()

将图像转换为棕褐色(也可以通过指定色相和彩度来转换为棕褐色 ->xxxxx)

$image->fSepia();

void fNegate()

将图像的颜色反转

$image->fNegate();

void fBrightness($brightness = 0.0)

更改图像的亮度($brightness (-1.0〜1.0))

$image->fBrightness(1.3);

void fContrast($contrast)

更改图像的对比度

$image->fContrast(20);

void fColorize($r = 0.0, $g = 0.0, $b = 0.0, $a = 1.0)

在图像上添加指定颜色的过滤器

$image->fColorize(0.5, 0.0, 0.0, 1.0); // 赤みかかった画像

void fEdgedetect()

检测图像的边缘并强调图像的边缘

$image->fEdgedetect();

void fEmboss()

对图像进行浮雕处理

$image->fEmboss();

void fGaussianblur(int $n = 1)

用高斯分布模糊图像($n 重复次数的指定,次数越多,图像越模糊)

$image->fGaussianblur(3);

void fSelectiveblur(int $n = 1)

用高斯分布模糊图像($n 重复次数的指定,次数越多,图像越模糊)

$image->fSelectiveblur(3);

void fMeanremoval(int $n = 1)

去除平均并产生素描效果($n 次效果处理)

$image->fMeanremoval(3);

void fSmooth(float $weight)

使图像平滑($weight 强度的指定)

$image->fSmooth(30);

void fPixelate(int $size, boolean $advanced = true)

在图像上添加马赛克($size 马赛克大小)

$image->fPixelate(5);

void draw(Image $image, int $dx = 0, int $dy = 0)

将指定图像绘制到指定位置(复制)

$image->draw($image2, 50, 0);

void drawRect(Image $image, object $srect, int $dx = 0, int $dy = 0, $pct = 1.0)

将指定图像的一部分绘制到指定位置(部分复制)

$srect = $image2->getRect();
// $srect->x
// $srect->y
// $srect->width
// $srect->height
$image->drawRect($image2, $srect, 100, 10);
$image->drawRect($image2, $srect, 100, 10, 0.5); // 半透明同士で合成

void disp()

在浏览器中绘制(仅当图像数据为唯一情况时在浏览器中显示)

$image->disp();

void save($file, $quality = 0.92)

将图像输出到文件(根据扩展名判断图像类型)

$image->save("test.png");
$image->save("test.jpg", 0.8); // $qualityは、jpgのみ使用されます

void dataUriScheme($mime = 'png', $quality = 0.92)

获取数据uri方案
获取data:image/png;base64,XXXXX 形式的字符串数据

$dataurischeme = $image->dataUriScheme('png');
--> tag img src=$dataurischemeの内容をここに(htmlに埋め込める)

Resource gdResource()

获取GD资源对象(当需要直接调用PHP GD函数时使用。)

$gdresource = $image->gdResource();

object getRgba(int $x, int $y)

获取指定位置的图像像素颜色(object:rgba (0.0〜1.0))

$rgba = $image->getRgba(0, 0);
// $rgba->r (0.0〜1.0)
// $rgba->g (0.0〜1.0)
// $rgba->b (0.0〜1.0)
// $rgba->a (0.0〜1.0 0.0で透明)

void xSV($xS = 1.0, $xV = 1.0)

将乘以值应用于图像的饱和度和亮度 xS(饱和度0.0〜) xV(亮度0.0〜)

$image->xSV(1.3);      // 彩度を1.3倍にする
$image->xSV(1.0, 1.3); // 明度を1.3倍にする

void rotateHue(float $angle)

旋转图像的颜色($angle 0~360)

$image->rotateHue(120);

void setHue(float $angle)

将图像的颜色设置为指定的旋转位置($angle 0~360)

$image->setHue(30);

void setSaturation(float $saturation)

将图像的饱和度设置为指定的值($saturation 0.0〜1.0)

// 以下の2行でセピア調になる
$image->setSaturation(0.45);
$image->setHue(30);

void replaceColor($rgba, $torgba = null)

将$rgba的颜色与相同的pixel替换为$torgba的颜色

// 画像 0,0 のカラーを取得して透明にして置き換える
$rgba   = $image->getRgba();
$torgba = $image->getRgba();
$torgba->a = 0.0;
$image->replaceColor($rgba, $torgba);

void setShapeColor($rOrgb = 0.0, $g = 0.0, $b = 0.0, $a = 1.0)

shapeXXX() 绘制图形的方法中使用的颜色设置

$image->setShapeColor(); // 不透明な黒
$image->setShapeColor(1.0, 1,0, 1.0, 1.0); // 不透明な白
$rgba = (object) { "r" => 0.0, "g" => 0.0, "b" => 0.0, "a" => 0.5 };
$image->packColor($rgba); // rgba objectを使ってrgbaを指定(半透明な黒)

void shapeRect(boolean $fill, $rectOx, $y = 0, $ex = 0, $ey = 0)

在图像上绘制矩形

$image->shapeRect(0, 10, 10, 100, 50); // 塗りつぶし無し横長矩形

$rect = $image->getRect();
$rect->width  /= 2;
$rect->height /= 2;
$image->shapeRect(1, $rect); // 塗りつぶし画像左上に画像の1/4の矩形

void shapeLine($x, $y, $ex, $ey)

在图像上绘制线 $image->shapeLine(0, 0, 100, 100);

void shapeEllipse($fill, $rectOcx, $cy = 0, $width = 0, $height = 0)

在图像上绘制椭圆

// 中心座標100,100 に横幅50 高さ30 の塗りつぶした楕円を描画
$image->shapeEllipse(1, 100, 100, 50, 30);

// object rectを使った描画
$rect = $image->getRect();
$rect->x = 200;
$rect->y = 200;
$rect->width = 50;
$rect->height = 30;
$image->shapeEllipse(0, $rect); 

void shapeRegularPolygon($fill, $vertexNum, $cx, $cy, $r, $rotateDeg = 0)

绘制指定顶点数的正多边形(第一个顶点位于中心坐标上方)

// 中心座標200,200 半径50の正六角形を塗りつぶしで描画
$image->shapeRegularPolygon(1, 6, 200, 200, 50);

// 中心座標200,200 半径50の正六角形を30度回転して枠線を描画
$image->shapeRegularPolygon(0, 6, 200, 200, 50, 30);

hsv rgb2hsv($rOcol, $g = 0, $b = 0)

获取指定rgb颜色的hsv对象(rgb (0.0〜1.0))

$hsv = $image->rgb2hsv(1.0, 0,0, 0,0); // 赤
// $hsv->h // Hue:色相 (0〜360)
// $hsv->s // Saturation:彩度 (0.0〜1.0)
// $hsv->v // Value:明度 (0.0〜1.0)

void flipV()

上下反转图像

$image->flipV();

void flipH()

左右反转图像

$image->flipH();

void clean()

将图像中透明部分变为黑色透明(提高png压缩效率等)

$image->clean();

Image scale(float $scale)

使用指定比例(1.0为等倍)值放大或缩小图像,并返回新创建的Image实例。

$scale_image = $image->scale(2.0); // 2倍に拡大した画像

Image rotate(float $angle)

指定角度(0〜360度)旋转图像,并返回新创建的Image实例。

$rotate_image = $image->rotate(45); // 45°回転した画像

Image diffImage(Image $image2, object $rect = null)

获取两个图像的差分图像(将不同的部分从$image2中提取出来,相同的部分设置为alpha透明)

// rectを指定すると差分が生じた矩形情報が得られる
$rect = $image->getRect();
$diffimage = $image->diffImage($image2, $rect);

Image shapeOutlinesImage()

获取alpha透明图像的轮廓图像

$outlinesimage = $image->shapeOutlinesImage();