코드 복사 코드는 다음과 같습니다.
/*
*@author 27262681@qq.com
*copyright http://www.gowake.cn
*/
class img {
함수 __construct($arg = null) {
$args = func_get_args()
if($arg == null) {
return null; ->im = call_user_func_array(array($this,'create'),$args)
}
function __call($func,$arg) {
if(function_exists('image' .$ func)) {
$funcstr = 'image'.$func; error ("해당 메소드 또는 함수 없음")
}
Return Call_user_func_array ($ funcstr, $ arg); 경로 또는 너비
*@param int 높이, 생략 가능
*@param 문자열 6자리 16진수 정수
*/
function create($arg = null) {
$args = func_get_args();
if(is_file($args[0])) {
$this->file = $args[0]
$size = getimagesize($this ->file) 또는 error('이미지 유형 오류');
$this->size ? $this->size : $size> $type = image_type_to_extension( $size[2] ,false);
$this->type ? $this->type : $type;
$createfunc = 'imagecreatefrom'.
$im = $createfunc($this->file);
$im = imagecreatetruecolor((int)$args[0],(int)$args[1]) 또는 error("죄송합니다. 매개변수가 잘못되었습니다! ");
else {
$color = hexdec(str_replace('#','',$args[2]));
}
$this->size = $this ->size? 매개변수 오류!");
}
//imagealphablending($im,false);//이 두 줄은 투명 채널을 기록하는 데 사용됩니다.
Imagesavealpha($im,true); );//인터레이스 켜기
return $im; $h 새 그림의 너비
*@param string/bool $color 선택 사항, 새 그림의 배경색, 투명하게 하려면 false 또는 비어 있음
*@param bool $ lashen 선택 사항, 늘일지 여부, 기본값은 늘이지 않음 늘이기
*/
function suolue($w = null,$h = null,$color = false,$lashen = false) {
$ w_o = Imagesx($this->im);
$h_o = Imagesy($this->im)
if($w == null and $h != null) {
$ w = $h * $w_o/$h_o;
> $w /$h){
$w_n = $w 🎜> Imagecopyresampled($im,$ this->im,$x,$y,0,0,$w_n,$h_n, $w_o,$h_o);
>im = $im
$im 반환
}
/*
*그림에 쓰기
*@param string $str 쓸 문자열
*@param array $arg 문자열 관련 매개변수, 연관배열, 왼쪽은 거리 왼쪽 거리, 오른쪽은 오른쪽으로부터의 거리, 왼쪽이 우선, 상단은 상단으로부터의 거리, 하단은 하단으로부터의 거리, 상단이 각도, 색상은 6자리 16진수 색상입니다. 은 텍스트 투명도이고 글꼴은 글꼴 파일입니다.
*/
function write($str = '', $arg = array()) {
$size = $arg['size'] ? $arg['angle'] : 20;
$angle = $arg['angle'] : 0
$color = $arg['color'] ? arg['color'] : '000000';
$touming = $arg['touming'] ? $arg['touming'] : 100
$touming = dechex((100-$touming)* 127/100);
$color = hexdec ($touming.str_replace("#","",$color))
$font = $arg['font'] ? ] : 'arial.ttf';
$ boxarr = imagettfbbox($size,$angle,$font,$str)
$w = Imagesx($this->im); = 이미지($this->im);
$x_l = $x_r = $boxarr[0]
$y_t = $y_b = $boxarr[1]
for($i=0; ;$i $x_l = $boxarr[$i] < $boxarr[$i] : $x_l; $y_t = $boxarr[$i 1] < $y_t ? $y_t ? $boxarr[$i 1] : $y_b; = $x_r - $x_l;
Shift*/
$im = $this->create($width*4,$height*4)
$tm = hexdec('7ffffffff');
imagettftext($im,$ size,$angle,$width*2,$height*2,$color,$font,$str)
for($i=0;$i<$width* 4;$i ) {
for($ii=0;$ii<$height*4;$ii ) {
> {
for($ii= $x_l;$ii<$ 너비*4;$ii ) {
나누기 (2)
for($i=$width*4-1;$i>0;$i--) {
for($ii=$y_t;$ii<$height*4;$ii ) {
if(imagecolorat($im,$i,$ii) != $tm) {
$x_r = $i;
break(2);
}
}
}
for($i=$height*4-1;$i>0;$i--)
for($ii=$x_ 난;$ ii<=$x_r;$ii ) {
if(imagecolorat($im,$ii,$i) != $tm) {
$y_b = $i;
break(2);
}
}
}
$x_off = $x_l - $width*2;
$y_off = $y_b - $height*2;
$width = $x_r - $x_l; //확률
$height = $y_b - $y_t; //고도
imagedestroy($im);
if(isset($arg['left'])) {
$x = (int)$arg['left'] - $x_off;
}elseif (isset($arg['right'])){
$x = $w - (int)$arg['right'] - $width - $x_off;
}else {
$x = ($w - $width)/2 - $x_off;
}
if(isset($arg['top'])) {
$y = (int)$arg['top'] - $y_off $height;
}elseif (isset($arg['bottom'])){
$y = $h - (int)$arg['bottom'] - $y_off;
}else {
$y = ($h $height)/2 - $y_off;
}
imagettftext($this->im,$size,$angle,$x,$y,$color,$font,$str);
return $this->im;
}
/*
*合并图文(如图文水影)
*@param string/resource $file 图文件路径或这图文标识符
*@param 배열 인수 字符串关的参数,为一个关联数组,왼쪽 为距左边距离,오른쪽为距右边距离,왼쪽优先,위为距顶距离,아래为距底부距离,위优先;touming为文字透명도
*/
function merge($file,$arg = array()) {
if(is_file($file)) {
$imc = $this->create($file);
}elseif(gettype($file)=='resource') {
$imc = $file;
}else {
error("没有图文");
}
$touming = $arg['touming'] ? (int)$arg['touming'] : 100 ;
$w = Imagesx($this->im);
$h = 이미지($this->im);
$width = 이미지x($imc);
$height = 이미지($imc);
if(isset($arg['left'])) {
$x = (int)$arg['left'];
}elseif (isset($arg['right'])){
$x = $w - (int)$arg['right'] - $width;
}else {
$x = ($w - $width)/2;
}
if(isset($arg['top'])) {
$y = (int)$arg['top'];
}elseif (isset($arg['bottom'])){
$y = $h - $height - $arg['bottom'];
}else {
$y = ($h - $height)/2;
}
imagecopymergegray($this->im,$imc,$x,$y,0,0,$width,$height,$touming); } /*
**输出图片
*@param String $ 유형
*@param String $ filename 要转存的文件路径 *@param int $ zhiliang jpeg 图片특별한 图image清晰degree
*/
함수 표시($type = null,$filename = null,$zhiliang = null) {
if($type == null) {
$type = $this->유형 ? $this->유형 : 'jpg';
}
if(($type == 'jpeg' 또는 $type == 'jpg') 및 $zhiliang == null) {
$type = 'jpeg';
$zhiliang = 100;
}
if($filename == null) {
header('콘텐츠 유형: 이미지/'.$type);
}
$displayfunc = 'image'.$type;
$displayfunc($this->im,$filename,$zhiliang);
imagedestroy($this->im);
}
function randcolor($a,$b) {
$a = $a>255 ? 255 : (정수)$a;
$a = $a<0 ? 0 : (int)$a;
$b = $b>255 ? 255 : (정수)$b;
$b = $b<0 ? 0 : (정수)$b;
for($i=0;$i<3;$i ) {
$color .= str_pad(dechex(mt_rand($a,$b)), 2, "0", STR_PAD_LEFT);
}
$color를 반환합니다.
}
}
/*
함수 오류($msg,$debug = false) {
$err = new Exception($msg);
$str = "
n<span>错误:</span>n".print_r($err->getTrace(),1)."n";
复代代码 代码如下:
$img = new img('a.png');
$m = $img->im;
$im = $img->suolue(100);
$img->im = $m;
$img->suolue(300);
$img->merge($m,array('left'=>0,'top'=>0,'touming'=>60));
$img->merge($im,array('right'=>0,'top'=>0,'touming'=>60));
$img->merge($im,array('left'=>0,'bottom'=>0,'touming'=>60));
$img->merge($im,array('right'=>0,'bottom'=>0,'touming'=>60));
$img->write("春天来了",array('left'=>0,'top'=>0,'size'=>30,'color'=>$img ->randcolor(0,180),'angle'=>-45,'font'=>'simfang.ttf','touming'=>80));
$img->write("春天来了",array('왼쪽'=>0,'bottom'=>0,'size'=>30,'color'=>$img ->randcolor(0,180),'angle'=>45,'font'=>'simfang.ttf','touming'=>80));
$img->write("春天来了",array('right'=>0,'bottom'=>0,'size'=>30,'color'=>$img ->randcolor(0,180),'angle'=>-45,'font'=>'simfang.ttf','touming'=>80));
$img->write("春天来了",array('right'=>0,'top'=>0,'size'=>30,'color'=>$img ->randcolor(0,180),'angle'=>45,'font'=>'simfang.ttf','touming'=>80));
$img->display("gif");
以上就介绍了pimchanok leuwisetpaibul php 方便water印 and 缩略图的图shape类,包括了pimchanok leuwisetpaibul 方仅容,希望对PHP教程有兴趣的朋友有所帮助。