圖片可以顯示但是不顯示水印文字,封裝好的壓縮圖片和沒有封裝的文字水印都能運行
<?php?
? ? require "imageClass.php";
? ? $src = '250px-Wtybill.jpeg';
? ? $image = new Image($src);
$font_url = "msyh.ttc";
$content = "wtybill";
$color = array(
0=>255,
1=>225,
2=>225,
);
$transparency = 30;
$size = 20;
$rotate = 10;
$move = array(
'x'=>20,
'y'=>30
);
? ? $image->fontMark($font_url,$content,$color,$transparency,$Size,$rotate,$move);
? ? $image->show();
$image->save(success);
?>
<title>封裝-壓縮圖片</title>
<?php
class Image{
private $info;
public $image;
public function __construct($str){
$info = getimagesize($str);
$this->info = array(
'width'=>$info[0],
'height'=>$info[1],
'type'=>image_type_to_extension($info[2],false),
'mime'=>$info['mime'],
);
$fun = "imagecreatefrom{$this->info['type']}";
$this->image = $fun($str);
}
public function thumb($width,$height){
$image_thumb = imagecreatetruecolor(300,200);
imagecopyresampled($image_thumb,$this->image,0,0,0,0,$width,$height,$this->info['width'],$this->info['height']);
imagedestroy($this->image);
$this->image =$image_thumb;?
}
public function fontMark($font_url,$content,$color,$transparency,$Size,$rotate,$move){
$col = imagecolorallocatealpha($this->image,$color[0],$color[1],$color[2],$transparency);
imagettftext($this->image,$size,$rotate,$move['x'],$move['y'],$col,$font_url,$content);
}
public function show(){
ob_clean();
header("content-type:".$this->info['mime']);
$funs = "image{$this->info['type']}";
$funs($this->image);
}
public function save($newname){
$funs = "image{$this->info['type']}";
$funs($this->image,$newname.".".$this->info['type']);
}
public function __destruct(){ ? ??
? ? ? ? ? ? ? ? imagedestroy($this->image); ?
? ? ? ? }
}
?>
2022-03-25
strlen是取一個字符串長度,由于數(shù)組下標(biāo)是從0開始的,-1之后表示最后一個字符的位置如果是隱藏可以使用ele.hide(),其中ele為元素對象。$.each()是jquery中的高效循環(huán)輸出方法,除此外,還可以使用for語句foreach都可以的。
2018-08-03
$content,$font_url,$size,$color,$move,$rotate 正常
$font_url,$content,$color,$Size,$rotate,$move 出錯
2018-08-03
卡了一天終于解決了,應(yīng)該是形參順序出問題了:
把public function fontMark($font_url,$content,$color,$transparency,$Size,$rotate,$move)
改成public function fontMark($content,$font_url,$size,$color,$move,$rotate)(順便把自己,$transparency改成了color,相應(yīng)的改了test文件相關(guān)的)
test文件的fontMark的形參同理。
很神奇:視頻里不知道老師從哪里復(fù)制過來的參數(shù),那一段視頻剛好卡了一下,少了一段。
2018-08-03
把public function fontMark($font_url,$content,$color,$transparency,$Size,$rotate,$move)
改成public function fontMark($content,$font_url,$size,$color,$move,$rotate)(順便把自己,$transparency改成了color,相應(yīng)的改了test文件相關(guān)的)
test文件的fontMark的形參同理。
在這兒卡一天了原因我現(xiàn)在還不知道,可能是形參順序問題,也可能是我打錯字了。
很神奇:如果我把錯誤的那段形參復(fù)制拿去測試,就算順序?qū)α诉€是無法顯示水印。
但是自己手寫或者從別的地方復(fù)制過來的形參,就算順序和以前無法顯示水印的形參順序一樣也可以顯示水印。
視頻里不知道老師從哪里復(fù)制過來的參數(shù),那一段視頻剛好卡了一下,少了一段。
2018-08-03
test文件的$src在封裝(imageClass)文件里寫成了$str,不過好像沒有影響,為什么呢?
字體文件這一行老師為什么要把$font改成$font_url,就算不改也沒有影響啊。然后我的字體文件確實叫msyh.ttc,而且前面未封裝的文字水印可以Accepted