您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息
免费发信息
三六零分类信息网 > 酒泉分类信息网,免费分类信息发布

该怎么去调用这个类?

2024/3/2 18:09:55发布32次查看
srcimg = $img; $this->corner = $corner; $this->resize_width = $wid; $this->resize_height = $hei; $this->cut = $c; $this->corner_radius = $corner_radius; $this->angle = $angle; //图片的类型 $this->type = substr(strrchr($this->srcimg,.),1); //初始化图象 $this->initi_img(); //目标图象地址 $this -> dst_img(); //-- $this->width = imagesx($this->im); $this->height = imagesy($this->im); //生成图象 $this->newimg(); imagedestroy ($this->im); } function newimg() { //改变后的图象的比例 $resize_ratio = ($this->resize_width)/($this->resize_height); //实际图象的比例 $ratio = ($this->width)/($this->height); if(($this->cut)==1) //裁图 { if($ratio>=$resize_ratio) //高度优先 { $newimg = imagecreatetruecolor($this->resize_width,$this->resize_height); imagecopyresampled($newimg, $this->im, 0, 0, 0, 0, $this->resize_width,$this->resize_height, (($this->height)*$resize_ratio), $this->height); $tmp = $this->rounded_corner($newimg,$this->resize_width); imagepng ($tmp,$this->dstimg); } if($ratioresize_width,$this->resize_height); imagecopyresampled($newimg, $this->im, 0, 0, 0, 0, $this->resize_width, $this->resize_height, $this->width, (($this->width)/$resize_ratio)); $tmp = $this->rounded_corner($newimg); imagepng ($tmp,$this->dstimg); } } else //不裁图 { if($ratio>=$resize_ratio) { $newimg = imagecreatetruecolor($this->resize_width,($this->resize_width)/$ratio); imagecopyresampled($newimg, $this->im, 0, 0, 0, 0, $this->resize_width, ($this->resize_width)/$ratio, $this->width, $this->height); imagejpeg ($newimg,$this->dstimg); } if($ratioresize_height)*$ratio,$this->resize_height); imagecopyresampled($newimg, $this->im, 0, 0, 0, 0, ($this->resize_height)*$ratio, $this->resize_height, $this->width, $this->height); imagejpeg ($newimg,$this->dstimg); } } } //初始化图象 function initi_img() { if($this->type==jpg) { $this->im = imagecreatefromjpeg($this->srcimg); } if($this->type==gif) { $this->im = imagecreatefromgif($this->srcimg); } if($this->type==png) { $this->im = imagecreatefrompng($this->srcimg); } } //处理圆角 function rounded_corner($image,$size) { $this->angle = 0; $topleft = true; $bottomleft = true; $bottomright = true; $topright = true; $corner_source = imagecreatefrompng('rounded_corner.png'); $corner_width = imagesx($corner_source); $corner_height = imagesy($corner_source); $corner_resized = imagecreatetruecolor($this->corner_radius, $this->corner_radius); imagecopyresampled($corner_resized, $corner_source, 0, 0, 0, 0, $this->corner_radius, $this->corner_radius, $corner_width, $corner_height); $corner_width = imagesx($corner_resized); $corner_height = imagesy($corner_resized); $white = imagecolorallocate($image,255,255,255); $black = imagecolorallocate($image,0,0,0); //顶部左圆角 if ($topleft == true) { $dest_x = 0; $dest_y = 0; imagecolortransparent($corner_resized, $black); imagecopymerge($image, $corner_resized, $dest_x, $dest_y, 0, 0, $corner_width, $corner_height, 100); } //下部左圆角 if ($bottomleft == true) { $dest_x = 0; $dest_y = $size - $corner_height; $rotated = imagerotate($corner_resized, 90, 0); imagecolortransparent($rotated, $black); imagecopymerge($image, $rotated, $dest_x, $dest_y, 0, 0, $corner_width, $corner_height, 100); } //下部右圆角 if ($bottomright == true) { $dest_x = $size - $corner_width; $dest_y = $size - $corner_height; $rotated = imagerotate($corner_resized, 180, 0); imagecolortransparent($rotated, $black); imagecopymerge($image, $rotated, $dest_x, $dest_y, 0, 0, $corner_width, $corner_height, 100); } //顶部右圆角 if ($topright == true) { $dest_x = $size - $corner_width; $dest_y = 0; $rotated = imagerotate($corner_resized, 270, 0); imagecolortransparent($rotated, $black); imagecopymerge($image, $rotated, $dest_x, $dest_y, 0, 0, $corner_width, $corner_height, 100); } $image = imagerotate($image, $this->angle, $white); return $image; } //图象目标地址 function dst_img() { $full_length = strlen($this->srcimg); $type_length = strlen($this->type); $name_length = $full_length-$type_length; $name = substr($this->srcimg,0,$name_length-1); $this->dstimg = $name._small.png; }}//resizeimage(图片地址, 处理后的宽度, 处理后的高度, 是否裁剪, 圆角度数, 倾斜度);$img_file = 'sunset.jpg';$corner = 'rounded_corner.png';$resizeimage = new resizeimage($img_file, $corner, 80, 80, 1, 6, 0);?>
回复讨论(解决方案) 现在要实现图片上传成圆角的png,要怎么去使用?
不是说了非常清楚了,resizeimage(图片地址, 处理后的宽度, 处理后的高度, 是否裁剪, 圆角度数, 倾斜度);
$resizeimage = new resizeimage(“ 你上传图片的地址”,处理后的宽度, 处理后的高度, 是否裁剪, 圆角度数, 倾斜度);
把具体参数赋进去就可以了
这个类不错哦,用法不是已经写了
$resizeimage = new resizeimage();
$resizeimage->resizeimage(图片地址, 处理后的宽度, 处理后的高度, 是否裁剪, 圆角度数, 倾斜度);
使用前端可以吗?
直接运行代码出错哦,不知要修改哪里?
关键看构造函数,直接给制定参数即可。
function resizeimage($img, $corner, $wid, $hei,$c, $corner_radius, $angle){}
关键看构造函数,直接给制定参数即可。
function resizeimage($img, $corner, $wid, $hei,$c, $corner_radius, $angle){}
运行代码出错呢,你运行试试?
不是说了非常清楚了,resizeimage(图片地址, 处理后的宽度, 处理后的高度, 是否裁剪, 圆角度数, 倾斜度);
$resizeimage = new resizeimage(“ 你上传图片的地址”,处理后的宽度, 处理后的高度, 是否裁剪, 圆角度数, 倾斜度);
把具体参数赋进去就可以了 运行代码出错呢,你运行试试?
warning: imagecreatefrompng(33.png): failed to open stream: no such file or directory in d:\xampp\htdocs\resizeimage.php on line 115
warning: imagesx() expects parameter 1 to be resource, boolean given in d:\xampp\htdocs\resizeimage.php on line 116
warning: imagesy() expects parameter 1 to be resource, boolean given in d:\xampp\htdocs\resizeimage.php on line 117
warning: imagecopyresampled() expects parameter 2 to be resource, boolean given in d:\xampp\htdocs\resizeimage.php on line 119
错误一大堆,没有调试的意义
错误一大堆,没有调试的意义
生成的png透明图片边缘有锯齿,这个有办法消除吗?
代码?
错误一大堆,没有调试的意义
生成的png透明图片边缘有锯齿,这个有办法消除吗?
代码?
错误一大堆,没有调试的意义
生成的png透明图片边缘有锯齿,这个有办法消除吗?
_image_path = $image_path; $this->_radius = $radius; $this->_r = (int)$r; $this->_g = (int)$g; $this->_b = (int)$b; } private function _get_lt_rounder_corner() { $radius = $this->_radius; $img = imagecreatetruecolor($radius, $radius); $bgcolor = imagecolorallocate($img, $this->_r, $this->_g, $this->_b); $fgcolor = imagecolorallocate($img, 0, 0, 0); imagefill($img, 0, 0, $bgcolor); imagefilledarc($img, $radius, $radius, $radius*2, $radius*2, 180, 270, $fgcolor, img_arc_pie); imagecolortransparent($img, $fgcolor); return $img; } private function _load_source_image() { $ext = substr($this->_image_path, strrpos($this->_image_path, '.')); if (empty($ext)) { return false; } switch(strtolower($ext)) { case '.jpg': $img = @imagecreatefromjpeg($this->_image_path); break; case '.gif': $img = @imagecreatefromgif($this->_image_path); break; case '.png': $img = @imagecreatefrompng($this->_image_path); break; default: return false; } return $img; } public function round_it() { // load the source image $src_image = $this->_load_source_image(); if ($src_image === false) { die('图片没有上传成功!'); } $image_width = imagesx($src_image); $image_height = imagesy($src_image); // create a new image, with src_width, src_height, and fill it with transparent color $image = imagecreatetruecolor($image_width, $image_height); $trans_color = imagecolorallocate($image, $this->_r, $this->_g, $this->_b); imagefill($image, 0, 0, $trans_color); // then overwirte the source image to the new created image imagecopymerge($image, $src_image, 0, 0, 0, 0, $image_width, $image_height, 100); // then just copy all the rounded corner images to the 4 corners $radius = $this->_radius; // lt $lt_corner = $this->_get_lt_rounder_corner(); imagecopymerge($image, $lt_corner, 0, 0, 0, 0, $radius, $radius, 100); // lb $lb_corner = imagerotate($lt_corner, 90, $trans_color); imagecopymerge($image, $lb_corner, 0, $image_height - $radius, 0, 0, $radius, $radius, 100); // rb $rb_corner = imagerotate($lt_corner, 180, $trans_color); imagecopymerge($image, $rb_corner, $image_width - $radius, $image_height - $radius, 0, 0, $radius, $radius, 100); // rt $rt_corner = imagerotate($lt_corner, 270, $trans_color); imagecopymerge($image, $rt_corner, $image_width - $radius, 0, 0, 0, $radius, $radius, 100); // set the transparency imagecolortransparent($image, $trans_color); // display it //header('content-type: image/png'); imagepng ($image,images_png/images_png.png); imagedestroy($src_image); imagedestroy($image); imagedestroy($lt_corner); imagedestroy($lb_corner); imagedestroy($rb_corner); imagedestroy($rt_corner); }}$rounder = new roundedcorner('33.jpg',60);$rounder->round_it();?>
images_png.png这个图片有锯齿。
代码?
错误一大堆,没有调试的意义
生成的png透明图片边缘有锯齿,这个有办法消除吗?
原图片33.jpg的尺寸是150*150的。
代码?
错误一大堆,没有调试的意义
生成的png透明图片边缘有锯齿,这个有办法消除吗? 人呢???
酒泉分类信息网,免费分类信息发布

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录