PHP中使用Imagick實(shí)現(xiàn)各種圖片效果實(shí)例
imagick是一個(gè)功能強(qiáng)大的圖像處理庫(kù)。
說(shuō)是翻譯 其實(shí)就是簡(jiǎn)要介紹imagick 的主要功能的或者說(shuō)是我覺(jué)得比較實(shí)用的功能函數(shù)的介紹 以及使用的例子。
因?yàn)楸救说挠⒄Z(yǔ)水平有限,所以采用比較通俗或者說(shuō)比較貼近應(yīng)用化的語(yǔ)言來(lái)描述。
先欣賞一組炫麗的效果:
偏置圖像:
例子:
<?php
ini_set('display_errors',1);
header('Content-type: image/jpeg');
$image = new Imagick('1.jpg');
$image->rollImage(20,39);
echo $image;
?>
thumbnailImage($width,$height) 改變圖片大小
例子:
<?php
ini_set('display_errors',1);
header('Content-type: image/jpeg');
$image = new Imagick('1.jpg');
$image->thumbnailImage(100,0);
echo $image;
?>
addNoiseImage(int $noise_type [, int $channel= Imagick::CHANNEL_ALL ]);
功能:
Adds random noise to the image
添加干擾素
Noise constants ( $noise_type 類(lèi)型)
imagick::NOISE_UNIFORM (integer)
imagick::NOISE_GAUSSIAN (integer)
imagick::NOISE_MULTIPLICATIVEGAUSSIAN (integer)
imagick::NOISE_IMPULSE (integer)
imagick::NOISE_LAPLACIAN (integer)
imagick::NOISE_POISSON (integer)
Channel constants ( $channel 類(lèi)型)
imagick::CHANNEL_UNDEFINED (integer)
imagick::CHANNEL_RED (integer)
imagick::CHANNEL_GRAY (integer)
imagick::CHANNEL_CYAN (integer)
imagick::CHANNEL_GREEN (integer)
imagick::CHANNEL_MAGENTA (integer)
imagick::CHANNEL_BLUE (integer)
imagick::CHANNEL_YELLOW (integer)
imagick::CHANNEL_ALPHA (integer)
imagick::CHANNEL_OPACITY (integer)
imagick::CHANNEL_MATTE (integer)
imagick::CHANNEL_BLACK (integer)
imagick::CHANNEL_INDEX (integer)
imagick::CHANNEL_ALL (integer)
例子:
<?php
ini_set('display_errors',1);
header('Content-type: image/jpeg');
$image = new Imagick('1.jpg');
$image->thumbnailImage(100,0);
$image->addNoiseImage(imagick::NOISE_POISSON,imagick::CHANNEL_OPACITY);
echo $image;
?>
annotateImage 創(chuàng)建文本圖像
例子:
<?php
$image = new Imagick();
$draw = new ImagickDraw();
$pixel = new ImagickPixel( 'gray' );
$image->newImage(800, 75, $pixel);
$pixel->setColor('black');
$draw->setFont('Bookman-DemiItalic');
$draw->setFontSize( 30 );
$image->annotateImage($draw, 10, 45, 0, 'The quick brown fox jumps over the lazy dog');
$image->setImageFormat('png');
header('Content-type: image/png');
echo $image;
?>
blurImage(float $radius , float $sigma [, int $channel ])
Adds blur filter to image 圖像模糊度處理
參數(shù):
int $channel :
imagick::CHANNEL_UNDEFINED (integer)
imagick::CHANNEL_RED (integer)
imagick::CHANNEL_GRAY (integer)
imagick::CHANNEL_CYAN (integer)
imagick::CHANNEL_GREEN (integer)
imagick::CHANNEL_MAGENTA (integer)
imagick::CHANNEL_BLUE (integer)
imagick::CHANNEL_YELLOW (integer)
imagick::CHANNEL_ALPHA (integer)
imagick::CHANNEL_OPACITY (integer)
imagick::CHANNEL_MATTE (integer)
imagick::CHANNEL_BLACK (integer)
imagick::CHANNEL_INDEX (integer)
imagick::CHANNEL_ALL (integer)
<?php
ini_set('display_errors',1);
header('Content-type: image/jpeg');
$image = new Imagick('1.jpg');
$image->blurImage(5,3);
echo $image;
?>
borderImage ( mixed $bordercolor , int $width , int $height ) 圖片邊框處理
例子:
<?php
ini_set('display_errors',1);
header('Content-type: image/jpeg');
$image = new Imagick('1.jpg');
$color=new ImagickPixel();
$color->setColor("rgb(220,220,220)");
$image->borderImage($color,5,4);
$image->blurImage(5,5,imagick::CHANNEL_GREEN);
echo $image;
?>
charcoalImage ( float $radius , float $sigma ) 圖像素描處理
參數(shù)說(shuō)明:
$radius :越小越薄。
$sigma: 越大 墨越深 反之。
例子:
<?php
ini_set('display_errors',1);
header('Content-type: image/jpeg');
$image = new Imagick('1.jpg');
$color=new ImagickPixel();
$color->setColor("rgb(220,220,220)");
$image->borderImage($color,5,4);
$image->charcoalImage(0.0001,0.001);
//$image->blurImage(5,5,imagick::CHANNEL_GREEN);
echo $image;
?>
chopImage ( int $width , int $height , int $x , int $y )
參數(shù)說(shuō)明:刪除一定范圍的圖像區(qū)域
就不做參數(shù)說(shuō)明,一看便知.
colorizeImage( mixed $colorize , mixed $opacity )混合填充顏色
$colorize 顏色
$opacit 透明度
例子:
<?php
/*
膠卷底片效果
*/
ini_set('display_errors',1);
header('Content-type: image/jpeg');
$image = new Imagick('1.jpg');
$image->negateImage(false);
$image->colorizeImage('#000',1.0);
echo $image;
?>
embossImage ( float $radius , float $sigma )
功能: 返回一個(gè)灰度級(jí)3D圖像 不太好。
例子:
<?php
ini_set('display_errors',1);
header('Content-type: image/jpeg');
$image = new Imagick('1.jpg');
$image->embossImage(1,1);
echo $image;
?>
(兩張效果圖)
flipImage(void)
功能: 創(chuàng)建圖像倒影(垂直翻轉(zhuǎn))
例子:
<?php
ini_set('display_errors',1);
header('Content-type: image/jpeg');
$image = new Imagick('1.jpg');
$image->flipImage();
echo $image;
?>
flopImage ( void )
功能: 圖像水平橫向翻轉(zhuǎn)
<?php
ini_set('display_errors',1);
header('Content-type: image/jpeg');
$image = new Imagick('1.jpg');
$image->flopImage();
echo $image;
?>
frameImage(mixed $matte_color,int $width, int $height,int $inner_bevel, int $outer_bevel)
功能:創(chuàng)建3D圖像邊框
參數(shù)說(shuō)明:
$matte_color:顏色
$inner_bevel:邊框內(nèi)部?jī)A斜度
$outer_bevel:外部邊框傾斜度
例子:
<?php
ini_set('display_errors',1);
header('Content-type: image/jpeg');
$image = new Imagick('1.jpg');
$color=new ImagickPixel();
$color->setColor("rgb(220,220,220)");
$image->frameImage($color,11,11,1,10);
echo $image;
?>
注意事項(xiàng):
$width(寬度)不能小于$inner_bevel(邊框內(nèi)部?jī)A斜度)
Imagick::gammaImage (float $gamma [,int $channel= Imagick::CHANNEL_ALL])
功能:調(diào)整圖像灰度系數(shù)
參數(shù)說(shuō)明:
float $gamma :灰度系數(shù)值
$channel 默認(rèn)為 Imagick::CHANNEL_ALL
Imagick::CHANNEL_ALL
例子 1:
<?php
ini_set('display_errors',1);
header('Content-type: image/jpeg');
$image = new Imagick('1.jpg');
$image->gammaImage(30);
echo $image;
?>
例子 2:
<?php
ini_set('display_errors',1);
header('Content-type: image/jpeg');
$image = new Imagick('1.jpg');
$image->gammaImage(30);
echo $image;
?>
gaussianBlurImage ( float $radius , float $sigma [, int $channel= Imagick::CHANNEL_ALL ] )
功能:高斯模糊處理 類(lèi)似于photo的高斯模糊
參數(shù)說(shuō)明:
float $radius:高斯模糊的半徑,像素,不包括中心象素。
float $sigma :高斯的標(biāo)準(zhǔn)偏差,以像素為單位。我覺(jué)得這個(gè)參數(shù)最重要。
int $channel :圖像顏色模式。
<?php
ini_set('display_errors',1);
header('Content-type: image/jpeg');
$image = new Imagick('1.jpg');
$image->gaussianBlurImage(30,3);
echo $image;
?>
levelImage ( float $blackPoint , float $gamma , float $whitePoint [, int $channel= Imagick::CHANNEL_ALL ] )
功能: 調(diào)整圖像的色階(Adjusts the levels of an image)
參數(shù)說(shuō)明
<?php
ini_set('display_errors',1);
header('Content-type: image/jpeg');
$image = new Imagick('1.jpg');
$image->levelImage(4,4,4);
echo $image;
?>
例子2:
<?php
ini_set('display_errors',1);
header('Content-type: image/jpeg');
$image = new Imagick('1.jpg');
$image->levelImage(200,200,200,imagick::CHANNEL_GREEN);
echo $image;
?>
magnifyImage( void )
功能說(shuō)明:簡(jiǎn)便的圖像等比例放大2倍(Is a convenience method that scales an image proportionally to twice its original size. )
例子:
<?php
ini_set('display_errors',1);
header('Content-type: image/jpeg');
$image = new Imagick('1.jpg');
$image->magnifyImage ();
echo $image;
?>
medianFilterImage ( float $radius )
功能:特是的濾鏡 有點(diǎn)像photoshop 調(diào)色刀濾鏡
<?php
ini_set('display_errors',1);
header('Content-type: image/jpeg');
$image = new Imagick('1.jpg');
$color=new ImagickPixel();
$color->setColor("rgb(220,220,220)");
$image->medianFilterImage(5);
echo $image;
?>
minifyImage(void)
功能:圖小縮小一倍(Scales an image proportionally to half its size)
例子:
<?php
ini_set('display_errors',1);
header('Content-type: image/jpeg');
$image = new Imagick('1.jpg');
$image->minifyImage();
echo $image;
?>
modulateImage ( float $brightness , float $saturation , float $hue )
功能:控制調(diào)整圖像的 亮度、飽和度、色調(diào)。
參數(shù)說(shuō)明:
float $brightness: 亮度
float $saturation :飽和度
float $hue 色調(diào)
例子1:
<?php
ini_set('display_errors',1);
header('Content-type: image/jpeg');
$image = new Imagick('1.jpg');
$image->modulateImage(100,1,100);
echo $image;
?>
例子2:
<?php
ini_set('display_errors',1);
header('Content-type: image/jpeg');
$image = new Imagick('1.jpg');
$image->modulateImage(250,1,250);
echo $image;
?>
motionBlurImagemotionBlurImage ( float $radius , float $sigma , float $angle [, int $channel= Imagick::CHANNEL_DEFAULT ] )
功能:模擬運(yùn)動(dòng)模糊(Simulates motion blur) ,類(lèi)似photoshop的動(dòng)感模糊濾鏡功能
參數(shù)說(shuō)明:
float $radius: 高斯 半徑,不包過(guò)中心像素。
float $sigma:標(biāo)準(zhǔn)偏差的高斯,以像素為單位?!局匾獏?shù)】
float $angle:模糊角度。
int $channel:圖像顏色模式。默認(rèn)為 Imagick::CHANNEL_DEFAULT
例子1:
<?php
ini_set('display_errors',1);
header('Content-type: image/jpeg');
$image = new Imagick('1.jpg');
$color=new ImagickPixel();
$color->setColor("rgb(220,220,220)");
$image->motionBlurImage (61,10,10);
echo $image;
?>
例子2:
<?php
ini_set('display_errors',1);
header('Content-type: image/jpeg');
$image = new Imagick('1.jpg');
$color=new ImagickPixel();
$color->setColor("rgb(220,220,220)");
$image->motionBlurImage (201,10,100);
echo $image;
?>
oilPaintImage ( float $radius ):
功能說(shuō)明: 模擬油畫(huà)濾鏡(Simulates an oil painting)
例子:
<?php
ini_set('display_errors',1);
header('Content-type: image/jpeg');
$image = new Imagick('1.jpg');
$color=new ImagickPixel();
$color->setColor("rgb(220,220,220)");
$image->oilPaintImage(1);
echo $image;
?>
radialBlurImage ( float $angle [, int $channel= Imagick::CHANNEL_ALL ] )
功能: 徑向模糊(Radial blurs an image)
<?php
ini_set('display_errors',1);
header('Content-type: image/jpeg');
$image = new Imagick('1.jpg');
$color=new ImagickPixel();
$color->setColor("rgb(220,220,220)");
$image->radialBlurImage(30);
echo $image;
?>
raiseImage ( int $width , int $height , int $x , int $y , bool $raise )
功能說(shuō)明:創(chuàng)建3D圖像按鈕(Creates a simulated 3d button-like effect)
<?php
ini_set('display_errors',1);
header('Content-type: image/jpeg');
$image = new Imagick('1.jpg');
$color=new ImagickPixel();
$color->setColor("rgb(220,220,220)");
$image->raiseImage(10,10,3,5,6);
echo $image;
?>
附1:要求縮小圖片尺寸、增加半透明邊框,讀入exif信息,按指定要求顯示在圖片上
$towidth = '500';
$toheight = '700'; //設(shè)置圖片調(diào)整大小時(shí)允許的最大寬度和高度
$sourcefile = './b.jpg'; //定義一個(gè)圖像文件路徑
//$image->writeImage('./b.jpg.bak'); //可以備份這個(gè)圖片
$myimage = new Imagick( $sourcefile ); //讀入該圖像文件
$exifobject = my_exif( $myimage ); //自寫(xiě)函數(shù),讀取exif信息(拍攝數(shù)據(jù)),按自己的要求排列exif信息,返回對(duì)象
//$myimage->setImageFormat('jpeg'); //把圖片轉(zhuǎn)為jpg格式
$myimage->setCompressionQuality( 100 ); //設(shè)置jpg壓縮質(zhì)量,1 - 100
$myimage->enhanceImage(); //去噪點(diǎn)
$sourcewidth = $myimage->getImageWidth(); //獲取讀入圖像原始大小
if ( $sourcewidth > $towidth )
{
$myimage->scaleImage( $towidth, $toheight, true ); //調(diào)整圖片大小
}
$myimage->raiseImage( 8, 8, 0, 0, 1 ); //加半透明邊框
$resizewidth = $myimage->getImageWidth(); //讀出調(diào)整之后的圖片大小
$resizeheight = $myimage->getImageHeight();
$drawback = new ImagickDraw(); //實(shí)例化一個(gè)繪畫(huà)對(duì)象,繪制半透明黑色背景給exif信息用
$drawback->setFillColor( new ImagickPixel('#000000') ); //設(shè)置填充顏色為黑色
$drawback->setFillOpacity( 0.6 ); //填充透明度為0.6,參數(shù)0.1-1,1為不透明
$drawback->rectangle( $resizewidth / 2 - 190, $resizeheight - 50, $resizewidth / 2 + 190, $resizeheight - 12 ); //繪制矩形參數(shù),分別為左上角x、y,右下角x、y
$myimage->drawImage( $drawback ); //確認(rèn)到image中繪制該矩形框
$draw = new ImagickDraw(); //實(shí)例化一個(gè)繪畫(huà)對(duì)象,繪制exif文本信息嵌入圖片中
$draw->setFont( './xianhei.ttf' ); //設(shè)置文本字體,要求ttf或者ttc字體,可以絕對(duì)或者相對(duì)路徑
$draw->setFontSize( 11 ); //設(shè)置字號(hào)
$draw->setTextAlignment( 2 ); //文字對(duì)齊方式,2為居中
$draw->setFillColor( '#FFFFFF' ); //文字填充顏色
$myimage->annotateImage( $draw, $resizewidth / 2, $resizeheight - 39, 0, $exifobject->row1 ); //繪制第一行文本,居中
$myimage->annotateImage( $draw, $resizewidth / 2, $resizeheight - 27, 0, $exifobject->row2 ); //繪制第二行文本,居中
$myimage->annotateImage( $draw, $resizewidth / 2, $resizeheight - 15, 0, $exifobject->row3 ); //繪制第三行文本,居中
/* Output the image with headers */
header( 'Content-type: image/jpeg' ); //php文件輸出mime類(lèi)型為jpeg圖片
echo $myimage; //在當(dāng)前php頁(yè)面輸出圖片
//$image->writeImage('./b.new.jpg'); //如果圖片不需要在當(dāng)前php程序中輸出,使用寫(xiě)入圖片到磁盤(pán)函數(shù),上面的設(shè)置header也可以去除
$myimage->clear();
$myimage->destroy(); //釋放資源
//自寫(xiě)函數(shù),讀取exif信息,返回對(duì)象
function my_exif( $myimage )
{
$exifArray = array( 'exif:Model' => '未知', 'exif:DateTimeOriginal' => '未知', 'exif:ExposureProgram' => '未知', 'exif:FNumber' => '0/10', 'exif:ExposureTime' => '0/10', 'exif:ISOSpeedRatings' => '未知',
'exif:MeteringMode' => '未知', 'exif:Flash' => '關(guān)閉閃光燈', 'exif:FocalLength' => '未知', 'exif:ExifImageWidth' => '未知', 'exif:ExifImageLength' => '未知' ); //初始化部分信息,防止無(wú)法讀取照片exif信息時(shí)運(yùn)算發(fā)生錯(cuò)誤
$exifArray = $myimage->getImageProperties( "exif:*" ); //讀取圖片的exif信息,存入$exifArray數(shù)組
//如果需要顯示原數(shù)組可以使用print_r($exifArray);
$r->row1 = '相機(jī):' . $exifArray['exif:Model'];
$r->row1 = $r->row1 . ' 拍攝時(shí)間:' . $exifArray['exif:DateTimeOriginal'];
switch ( $exifArray['exif:ExposureProgram'] )
{
case 1:
$exifArray['exif:ExposureProgram'] = "手動(dòng)(M)";
break; //Manual Control
case 2:
$exifArray['exif:ExposureProgram'] = "程序自動(dòng)(P)";
break; //Program Normal
case 3:
$exifArray['exif:ExposureProgram'] = "光圈優(yōu)先(A,Av)";
break; //Aperture Priority
case 4:
$exifArray['exif:ExposureProgram'] = "快門(mén)優(yōu)先(S,Tv)";
break; //Shutter Priority
case 5:
$exifArray['exif:ExposureProgram'] = "慢速快門(mén)";
break; //Program Creative (Slow Program)
case 6:
$exifArray['exif:ExposureProgram'] = "運(yùn)動(dòng)模式";
break; //Program Action(High-Speed Program)
case 7:
$exifArray['exif:ExposureProgram'] = "人像";
break; //Portrait
case 8:
$exifArray['exif:ExposureProgram'] = "風(fēng)景";
break; //Landscape
default:
$exifArray['exif:ExposureProgram'] = "其它";
}
$r->row1 = $r->row1 . ' 模式:' . $exifArray['exif:ExposureProgram'];
$exifArray['exif:FNumber'] = explode( '/', $exifArray['exif:FNumber'] );
$exifArray['exif:FNumber'] = $exifArray['exif:FNumber'][0] / $exifArray['exif:FNumber'][1];
$r->row2 = '光圈:F/' . $exifArray['exif:FNumber'];
$exifArray['exif:ExposureTime'] = explode( '/', $exifArray['exif:ExposureTime'] );
if ( ($exifArray['exif:ExposureTime'][0] / $exifArray['exif:ExposureTime'][1]) >= 1 )
{
$exifArray['exif:ExposureTime'] = sprintf( "%.1fs", (float)$exifArray['exif:ExposureTime'][0] / $exifArray['exif:ExposureTime'][1] );
} else
{
$exifArray['exif:ExposureTime'] = sprintf( "1/%ds", $exifArray['exif:ExposureTime'][1] / $exifArray['exif:ExposureTime'][0] );
}
$r->row2 = $r->row2 . ' 快門(mén):' . $exifArray['exif:ExposureTime'];
$r->row2 = $r->row2 . ' ISO:' . $exifArray['exif:ISOSpeedRatings'];
$exifArray['exif:ExposureBiasValue'] = explode( "/", $exifArray['exif:ExposureBiasValue'] );
$exifArray['exif:ExposureBiasValue'] = sprintf( "%1.1feV", ((float)$exifArray['exif:ExposureBiasValue'][0] / $exifArray['exif:ExposureBiasValue'][1] * 100) / 100 );
if ( (float)$exifArray['exif:ExposureBiasValue'] > 0 )
{
$exifArray['exif:ExposureBiasValue'] = "+" . $exifArray['exif:ExposureBiasValue'];
}
$r->row2 = $r->row2 . ' 補(bǔ)償:' . $exifArray['exif:ExposureBiasValue'];
switch ( $exifArray['exif:MeteringMode'] )
{
case 0:
$exifArray['exif:MeteringMode'] = "未知";
break;
case 1:
$exifArray['exif:MeteringMode'] = "矩陣";
break;
case 2:
$exifArray['exif:MeteringMode'] = "中央重點(diǎn)平均";
break;
case 3:
$exifArray['exif:MeteringMode'] = "點(diǎn)測(cè)光";
break;
case 4:
$exifArray['exif:MeteringMode'] = "多點(diǎn)測(cè)光";
break;
default:
$exifArray['exif:MeteringMode'] = "其它";
}
$r->row2 = $r->row2 . ' 測(cè)光:' . $exifArray['exif:MeteringMode'];
switch ( $exifArray['exif:Flash'] )
{
case 1:
$exifArray['exif:Flash'] = "開(kāi)啟閃光燈";
break;
}
$r->row2 = $r->row2 . ' ' . $exifArray['exif:Flash'];
if ( $exifArray['exif:FocalLengthIn35mmFilm'] )
{
$r->row3 = '等效焦距:' . $exifArray['exif:FocalLengthIn35mmFilm'] . "mm";
} else
{
$exifArray['exif:FocalLength'] = explode( "/", $exifArray['exif:FocalLength'] );
$exifArray['exif:FocalLength'] = sprintf( "%4.1fmm", (double)$exifArray['exif:FocalLength'][0] / $exifArray['exif:FocalLength'][1] );
$r->row3 = '焦距:' . $exifArray['exif:FocalLength'];
}
$r->row3 = $r->row3 . ' 原始像素:' . $exifArray['exif:ExifImageWidth'] . 'x' . $exifArray['exif:ExifImageLength'] . 'px';
if ( $exifArray['exif:Software'] )
{
$r->row3 = $r->row3 . ' 后期:' . $exifArray['exif:Software'];
}
return $r;
}
附2:處理圖片水印
<?php
//獲取水印圖片
$logo = new Imagick("logo.png");
$logo->setImageResolution(0.01,0.03);
//創(chuàng)建一個(gè)Imagick對(duì)象,同時(shí)獲取要處理的源圖
$im = new Imagick( "old_large_img_2.jpg" );
//獲取源圖片寬和高
$srcWH = $im->getImageGeometry();
//圖片等比例縮放寬和高設(shè)置
if($srcWH['width']>710){
$srcW['width'] = 710;
$srcH['height'] = $srcW['width']/$srcWH['width']*$srcWH['height'];
}else{
$srcW['width'] = $srcWH['width'];
$srcH['height'] = $srcWH['height'];
}
//按照比例進(jìn)行縮放
$im->thumbnailImage( $srcW['width'], $srcH['height'], true );
// 按照縮略圖大小創(chuàng)建一個(gè)有顏色的圖片
$canvas = new Imagick();
$canvas->newImage( $srcW['width'], $srcH['height'], 'black', 'jpg' ); //pink,black
//添加水印
$im->compositeImage($logo,Imagick::COMPOSITE_OVER,$srcW['width']-280,$srcH['height']-77);
$canvas->setcompressionquality(91);
//合并圖片
$canvas->compositeImage( $im, imagick::COMPOSITE_OVER, 0, 0);
//輸出圖片
header( "Content-Type: image/jpg" );
echo $canvas;
//生成圖片
$canvas->writeImage( "test_img/old_large_img_2_96.jpg" );
?>
- PHP基于imagick擴(kuò)展實(shí)現(xiàn)合成圖片的兩種方法【附imagick擴(kuò)展下載】
- PHP編程獲取圖片的主色調(diào)的方法【基于Imagick擴(kuò)展】
- PHP Imagick完美實(shí)現(xiàn)圖片裁切、生成縮略圖、添加水印
- php使用Imagick生成圖片的方法
- PHP中使用imagick實(shí)現(xiàn)把PDF轉(zhuǎn)成圖片
- php_imagick實(shí)現(xiàn)圖片剪切、旋轉(zhuǎn)、銳化、減色或增加特效的方法
- php Imagick獲取圖片RGB顏色值
- PHP基于php_imagick_st-Q8.dll實(shí)現(xiàn)JPG合成GIF圖片的方法
- php使用imagick模塊實(shí)現(xiàn)圖片縮放、裁剪、壓縮示例
- PHP使用 Imagick 擴(kuò)展實(shí)現(xiàn)圖片合成,圓角處理功能示例
相關(guān)文章
php實(shí)現(xiàn)Mongodb自定義方式生成自增ID的方法
這篇文章主要介紹了php實(shí)現(xiàn)Mongodb自定義方式生成自增ID的方法,實(shí)例分析了Mongodb自增字段的實(shí)現(xiàn)技巧與對(duì)應(yīng)php操作方法,需要的朋友可以參考下2015-03-03PHP中實(shí)現(xiàn)中文字符進(jìn)制轉(zhuǎn)換原理分析
中文字符編碼研究系列第四期,PHP實(shí)現(xiàn)中文字符進(jìn)制轉(zhuǎn)換原理分析,主要討論中文漢字轉(zhuǎn)換為十進(jìn)制和十六進(jìn)制的方法,并掌握轉(zhuǎn)換原理應(yīng)用于實(shí)際開(kāi)發(fā)。本文以GBK編碼字符為例,討論GBK編碼的字符轉(zhuǎn)換原理2011-12-12php對(duì)二維數(shù)組按指定鍵值key排序示例代碼
對(duì)二維數(shù)組按指定鍵值key排序,對(duì)于一些新手朋友或許存在難度,下面為大家介紹下在php中時(shí)如何實(shí)現(xiàn)的2013-11-11PHP SPL標(biāo)準(zhǔn)庫(kù)中的常用函數(shù)介紹
這篇文章主要介紹了PHP SPL標(biāo)準(zhǔn)庫(kù)中的常用函數(shù)介紹,本文著重講解了spl_autoload_extensions()、spl_autoload_register()、spl_autoload()三個(gè)函數(shù),需要的朋友可以參考下2015-05-05PHP下編碼轉(zhuǎn)換函數(shù)mb_convert_encoding與iconv的使用說(shuō)明
mb_convert_encoding這個(gè)函數(shù)是用來(lái)轉(zhuǎn)換編碼的。原來(lái)一直對(duì)程序編碼這一概念不理解,不過(guò)現(xiàn)在好像有點(diǎn)開(kāi)竅了。2009-12-12