目前只實現了三個功能:1:圖片縮放,2:圖片裁剪,3:加圖片水印
在實例化中,透過給第二個參數傳遞不同的值,從而實現不同的功能
複製程式碼 程式碼如下:
include "image.class.php";
$image=new image("2.png", 1, "300", "500", "5.png" ); //使用圖片縮放功能
$image=new image("2.png", 2, "0,0", "50,50", "5.png"); //使用圖片裁切功能
$ image=new image("2.png", 3, "1.png", "0", "5.png"); //使用加圖浮水印功能
$image->outimage();
?>
PHP程式碼
複製程式碼 程式碼如下:
/*已知問題:1.在圖片縮放功能中,使用imagecreatetruecolor函數建立畫布,並使用透明處理演算法,但PNG格式的圖片無法透明。用imagecreate函數建立畫布可以解決這個問題,但是縮放出來的圖片色數太少了
*
*
*type值:
* (1):代表使用圖片縮放功能,此時,$value1代表縮放後圖片的寬度,$value2代表縮放後圖片的高度
* (2):代表使用圖片裁剪功能,此時,$value1代表裁剪開始點的座標,例:從原點開始即是「0,0」前面是x軸後面是y軸,中間用,分隔,$value2代表裁剪的寬度和高度,同樣也是“20,20”的形式使用
* (3):代表使用加圖片水印功能,此時,$value1代表水印圖片的檔名,$value2代表浮水印在圖片中的位置,有10值個可以選,1代表左上,2代表左中,3代表左右,4代表中左,5代表中中,6代表中右, 7代表下做,8代表下中,9代表下右,0代表隨機位置
*
*/
class image{
private $types; //使用的功能編號,1為圖片縮放功能2為圖片裁剪功能3,為圖片加上圖片浮水印功能
private $imgtype;//圖片的格式
private $image; //圖片資源
private $width;//圖片寬度
private $height;//圖片高度
private $value1; //根據所傳type值的不同,$value1分別代表不同的值
private $value2;//根據所傳type值的不同,$value2分別代表不同的值
private $endaddress;//輸出後的位址+檔名
function __construct($imageaddress, $types, $value1="", $value2="", $endaddress){
$this->types=$types;
$this->image=$this-> imagesources($imageaddress);
$this->width=$this->imagesizex();
$this->height=$this->imagesizey();
$this->value1=$value1;
$this- >value2=$value2;
$this->endaddress=$endaddress;
}
function outimage(){ //根據傳入type值的不同,輸出不同的功能
switch($this->types){
case 1:
$this->scaling();
break;
case 2:
$this->clipping();
break;
case 3:
$this->imagewater();
case 3:
$this->imagewater();
ault; return false;
}
}
private function imagewater(){ //加圖片水印功能
//用函數獲取水印文件的長和寬
$imagearrs=$this->getimagearr($this->value1);
1);
1); //呼叫函數計算出水印載入的位置
$positi $imagearrs[0], $imagearrs[1]);
//加浮水印
imagecopy($this->image, $this->imagesources($this-> value1), $positionarr[0], $positionarr[1], 0, 0, $imagearrs[0], $imagearrs[1]);
//呼叫輸出方法儲存
$this->output($this-> image);
}
private function clipping(){ //圖片裁切功能
//將傳進來的值分別賦給變數
list($src_x, $src_y)=explode(",", $this->value1 );
list($dst_w, $dst_h)=explode(",", $this->value2);
if($this->width height return false;
}
//創建新的畫布資源
$newimg=imagecreatetruecolor($dst_w, $dst_h);
///////進行裁剪
newimg, $this->image, 0, 0, $src_x, $src_y, $dst_w, $dst_h, $dst_w, $dst_h);
//呼叫輸出方法儲存
$this->output($newimg);
}
private function scaling(){ //圖片縮放功能
//獲取等比縮放的寬和高
$this-> proimagesize();
//根據參數進行縮放,並調用輸出函數保存處理後的文件
$this->output($this->imagescaling());
}
private function imagesources($imgad){ //取得圖片類型並開啟圖片資源
$imagearray=$this->getimagearr($imgad);
switch($imagearray[2]){
case 1://gif
$this->imgtype=1;
$img=imagecreatefromgif($imgad);
break;
case 2://jpeg-
break; >imgtype=2;
$img=imagecreatefromjpeg($imgad);
break;
case 3://png
$this->imgtype=3;
$img=imagecreatefrompng($imgbreak); 簡單
return false;
}
return $img;
}
private function imagesizex(){ //得到圖片寬度
return imagesx($this->image); 獲取高度圖片
private f
return imagesy($this->image);
}
private function proimagesize(){ //計算等比縮放的圖片的寬和高
if($this->value1 && ($this->width
$this->value1=round(($this->value2/ $this->height)*$this->width);
}else{
$this- >value2=round(($this->value1/ $this->width) * $this->height);
}
}
private function imagescaling(){//映像縮放功能,傳回處理後的映像資源
$newimg=imagecreatetruecolor($this->value1, $this->value2);
$tran=imagecolortransparent($this-this-image) ;//處理透明演算法
if($tran >= 0 && $tran image)){
$tranarr=imagecolorsforindex($this->image, $tran);
$newcolor=imagecolorallocate( $newimg, $tranarr['red'], $tranarr['green'], $tranarr['blue']);
imagefill($newimg, 0, 0, $newcolor);
imagecolortransparent($newimg, $newcolor );
}
imagecopyresampled($newimg, $this->image, 0, 0, 0, 0, $this->value1, $this->value2, $this->width, $this->height);
return $newimg;
}
private function output($image){//輸出圖片
switch($this->imgtype){
case 1:
imagegif($image, $this->endaddress)break
); case 2:
imagejpeg($image, $this->endaddress);
break;
case 3:
imagepng($image, $this->endaddress);
break;
default:
turn fse};
private function getimagearr($imagesou){//返回圖像屬性數組方法
return getimagesize($imagesou);
}
private function position($num, $width, $height){//根據傳入的數字返回一個位置的座標,$width和$height分別代表插入影像的寬和高
switch($num){
case 1:
$positionarr[0]=0;
$positionarr[1]=0;
break;
case 2:
$positionarr[0]=($this->width-$width)/2;
$positionarr[1]=0;
break;
case 3:
$positionarr[0]=$this-> width-$width;
$positionarr[1]=0;
break;
case 4:
$positionarr[0]=0;
$positionarr[1]=($this->height-$height)/2;
break;
case 5:
$positionarr[0]=($this->width-$width)/2;
$positionarr[1]=($this->height-$height)/2;
break;
case 6:
$positionarr[0]=$this->width-$width;
$positionarr[1]=($this->height-$height)/2;
break;
cbreakase 7:
$position
$position; [0]=0;
$positionarr[1]=$this->height-$height;
break;
case 8:
$positionarr[0]=($this->width-$width)/2;
$positionarr[1]=$this->height-$height;
break;
case 9:
$positionarr[0]=$this->width-$width;
$positionarr[1]=$this->height -$height;
break;
case 0:
$positionarr[0]=rand(0, $this->width-$width);
$positionarr[1]=rand(0, $this->height-$ height);
break;
}
return $positionarr;
}
function __destruct(){
imagedestroy($this->image);
}
}
以上就介紹了 Php影像處理程式碼分享,包括了方面的內容,希望對PHP教學有興趣的朋友有所幫助。

许多用户在选择智能手表的时候都会选择的华为的品牌,其中华为GT3pro和GT4都是非常热门的选择,不少用户都很好奇华为GT3pro和GT4有什么区别,下面就就给大家介绍一下二者。华为GT3pro和GT4有什么区别一、外观GT4:46mm和41mm,材质是玻璃表镜+不锈钢机身+高分纤维后壳。GT3pro:46.6mm和42.9mm,材质是蓝宝石玻璃表镜+钛金属机身/陶瓷机身+陶瓷后壳二、健康GT4:采用最新的华为Truseen5.5+算法,结果会更加的精准。GT3pro:多了ECG心电图和血管及安

为什么截图工具在Windows11上不起作用了解问题的根本原因有助于找到正确的解决方案。以下是截图工具可能无法正常工作的主要原因:对焦助手已打开:这可以防止截图工具打开。应用程序损坏:如果截图工具在启动时崩溃,则可能已损坏。过时的图形驱动程序:不兼容的驱动程序可能会干扰截图工具。来自其他应用程序的干扰:其他正在运行的应用程序可能与截图工具冲突。证书已过期:升级过程中的错误可能会导致此issu简单的解决方案这些适合大多数用户,不需要任何特殊的技术知识。1.更新窗口和Microsoft应用商店应用程

第1部分:初始故障排除步骤检查苹果的系统状态:在深入研究复杂的解决方案之前,让我们从基础知识开始。问题可能不在于您的设备;苹果的服务器可能会关闭。访问Apple的系统状态页面,查看AppStore是否正常工作。如果有问题,您所能做的就是等待Apple修复它。检查您的互联网连接:确保您拥有稳定的互联网连接,因为“无法连接到AppStore”问题有时可归因于连接不良。尝试在Wi-Fi和移动数据之间切换或重置网络设置(“常规”>“重置”>“重置网络设置”>设置)。更新您的iOS版本:

php提交表单通过后,弹出的对话框怎样在当前页弹出php提交表单通过后,弹出的对话框怎样在当前页弹出而不是在空白页弹出?想实现这样的效果:而不是空白页弹出:------解决方案--------------------如果你的验证用PHP在后端,那么就用Ajax;仅供参考:HTML code<form name="myform"

CSS维度属性详解:height和width在前端开发中,CSS是一种强大的样式定义语言。其中,height和width是两个最基本的维度属性,用于定义元素的高度和宽度。本文将对这两个属性进行详细解析,并提供具体的代码示例。一、height属性height属性用于定义元素的高度。可以使用像素(pixel)、百分比(percentage)或者

同事因为this指向的问题卡住的bug,vue2的this指向问题,使用了箭头函数,导致拿不到对应的props。当我给他介绍的时候他竟然不知道,随后也刻意的看了一下前端交流群,至今最起码还有70%以上的前端程序员搞不明白,今天给大家分享一下this指向,如果啥都没学会,请给我一个大嘴巴子。

watch4pro和gt各自具有不用的特点和适用场景,如果注重功能的全面性、高性能和时尚外观,同时愿意承担较高的价格,那么Watch 4 Pro可能更适合。如果对功能要求不高,更注重电池续航和价格的合理性,那么GT系列可能更适合。最终的选择应根据个人需求、预算和喜好来决定,建议在购买前仔细考虑自己的需求,并参考各种产品的评测和比较,以做出更明智的选择。

本篇文章带大家解读vue源码,来介绍一下Vue2中为什么可以使用 this 访问各种选项中的属性,希望对大家有所帮助!


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

MantisBT
Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

SecLists
SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

PhpStorm Mac 版本
最新(2018.2.1 )專業的PHP整合開發工具

Dreamweaver CS6
視覺化網頁開發工具

禪工作室 13.0.1
強大的PHP整合開發環境