當前位置:首頁 » 編程語言 » php生成圖片並保存

php生成圖片並保存

發布時間: 2025-06-16 11:48:02

⑴ 用php代碼怎麼以背景圖片加上文字生成新的圖片,然後在標題處絕對調用該圖片

<?php
ob_clean(); //清除輸出緩存
header("Content-type:image/jpeg"); //設置輸出類型
$img="images/test.jpg"; //背景圖片名
if(isset($_GET["img"]))$img=$_GET["img"]; //也可以通過img參數傳入
$im=imagecreatefromjpeg($img); //讀入背景圖片
$text="文字內容"; //要加上的文字內容
if(isset($_GET["text"]))$text=$_GET["text"]; //也可以通過text參數傳入
$fontFile="xxx.ttf"; //字體文件名,必須要
$fontSize=36; //字體尺寸
$fontColor=ImageColorAllocate($im,0,0,0); //字體顏色,這里是黑色
$textAngle=0; //文字顯示的角度,0表示水平顯示
$textLeft=20; //文字顯示的x坐標
$textTop=60; //文字顯示的y坐標
imagefttext($im,$fontSize,$textAngle,$textLeft,$textTop,$fontColor,$fontFile,$text); //把文字覆蓋到圖片上
Imagejpeg($im); //輸出圖片
ImageDestroy($im); //銷毀圖片
?>
把以上文字保存為php文件,比如 img.php
然後在需要調用圖片的地方用 <img src="img.php?img=背景圖片文件路徑&text=要加上的文字"/> 來調用
比如 <img src="img.php?img=images/back.jpg&text=你好"/>

⑵ PHP上傳圖片,並以原文件名保存!

代碼實在太長,就不細細看了。
$_FILES["upfile"][tmp_name]是臨時文件名稱,$_FILES["upfile"][name]是原文件名稱;
你也不給你錯誤提示。只能憑空判斷了。
1、文件保存路徑錯誤,文件夾不存在。
2、圖片重新創建的過程中存在錯誤。
3、編碼問題。

解決:
先把重新創建圖片的過程給去掉,直接轉移試試,如果可以,那就是你圖片創建的問題了。

另外:imagecreatefromwbmp這個函數貌似不存在。

⑶ 如何讓PHP中的數字變成圖片

//按照下面的代碼就能將數字轉成圖片了
for($i=0;$i<100;$i++){
if($i%10==0){
echo"<imgsrc='appserv/".$i.".gif'/><br/>";
}else{
echo"<imgsrc='appserv/".$i.".gif'/>";
}
}

⑷ thinkphp作為伺服器端獲取上傳的圖片並保存的介面怎麼寫

就這么寫:
上傳操作
ThinkPHP文件上傳操作使用Think\Upload類,假設前面的表單提交到當前控制器的upload方法,我們來看下upload方法的實現代碼:
public function upload(){ $upload = new \Think\Upload();// 實例化上傳類 $upload->maxSize = 3145728 ;// 設置附件上傳大小 $upload->exts = array('jpg', 'gif', 'png', 'jpeg');// 設置附件上傳類型 $upload->rootPath = './Uploads/'; // 設置附件上傳根目錄 $upload->savePath = ''; // 設置附件上傳(子)目錄 // 上傳文件 $info = $upload->upload(); if(!$info) {// 上傳錯誤提示錯誤信息 $this->error($upload->getError()); }else{// 上傳成功 $this->success('上傳成功!'); }}

⑸ php圖片轉base64並保存為文本

php圖片轉base64並保存為文本方法如下:

PHP(外文名:PHP: Hypertext Preprocessor,中文名:「超文本預處理器」)是一種通用開源腳本語言。語法吸收了C語言、Java和Perl的特點,利於學習,使用廣泛,主要適用於Web開發領域。PHP 獨特的語法混合了C、Java、Perl以及PHP自創的語法。它可以比CGI或者Perl更快速地執行動態網頁。用PHP做出的動態頁面與其他的編程語言相比,PHP是將程序嵌入到HTML(標准通用標記語言下的一個應用)文檔中去執行,執行效率比完全生成HTML標記的CGI要高許多;PHP還可以執行編譯後代碼,編譯可以達到加密和優化代碼運行,使代碼運行更快。

Base64是網路上最常見的用於傳輸8Bit位元組代碼的編碼方式之一,大家可以查看RFC2045~RFC2049,上面有MIME的詳細規范。Base64編碼可用於在HTTP環境下傳遞較長的標識信息。例如,在Java Persistence系統Hibernate中,就採用了Base64來將一個較長的唯一標識符(一般為128-bit的UUID)編碼為一個字元串,用作HTTP表單和HTTP GET URL中的參數。在其他應用程序中,也常常需要把二進制數據編碼為適合放在URL(包括隱藏表單域)中的形式。此時,採用Base64編碼具有不可讀性,即所編碼的數據不會被人用肉眼所直接看到。

⑹ PHP圖片生成

給你一個php 圖像處理類,完全能實現你的功能,你自己研究一下吧

<?php
class image
{
var $w_pct = 50; //透明度
var $w_quality = 80; //質量
var $w_minwidth = 300; //最小寬
var $w_minheight = 300; //最小高
var $thumb_enable; //是否生成縮略圖
var $watermark_enable; //是否生水印
var $interlace = 0; //圖像是否為隔行掃描的
var $fontfile; //字體文件
var $w_img ; //默認水印圖

function __construct()
{
global $SITE_CONFING;
$this->thumb_enable = $SITE_CONFING['thumb_enable'];
$this->watermark_enable = $SITE_CONFING['watermark_enable'];
$this->set($SITE_CONFING['watermark_minwidth'], $SITE_CONFING['watermark_minheight'], $SITE_CONFING['watermark_quality'], $SITE_CONFING['watermark_pct'], $SITE_CONFING['watermark_fontfile'],$SITE_CONFING['watermark_img']);
}

function image()
{
$this->__construct();
}

function set($w_minwidth = 300, $w_minheight = 300, $w_quality = 80, $w_pct = 100,$fontfile,$w_img)
{
$this->w_minwidth = $w_minwidth;
$this->w_minheight = $w_minheight;
$this->w_quality = $w_quality;
$this->w_pct = $w_pct;
$this->fontfile = $fontfile;
$this->w_img = $w_img;
}

function info($img)
{
$imageinfo = getimagesize($img); //返回圖像信息數組 0=>寬的像素 1=>高的像素 2=>是圖像類型的標記 3 =>是文本字元串,內容為「height="yyy" width="xxx"」,
if($imageinfo === false) return false;
$imagetype = strtolower(substr(image_type_to_extension($imageinfo[2]),1)); //獲取圖像文件類型 $imageinfo[2]是圖像類型的標記
$imagesize = filesize($img); //圖像大小
$info = array(
'width'=>$imageinfo[0],
'height'=>$imageinfo[1],
'type'=>$imagetype,
'size'=>$imagesize,
'mime'=>$imageinfo['mime']
);
return $info;
}

function thumb($image, $filename = '', $maxwidth = 200, $maxheight = 50, $suffix='_thumb', $autocut = 0)
{
if(!$this->thumb_enable || !$this->check($image)) return false;
$info = $this->info($image); //獲取圖片信息
if($info === false) return false;
$srcwidth = $info['width']; //源圖寬
$srcheight = $info['height']; //源圖高
$pathinfo = pathinfo($image);
$type = $pathinfo['extension']; //取得擴展名
if(!$type) $type = $info['type']; //如果沒有取到,用$info['type']
$type = strtolower($type);
unset($info);
$scale = min($maxwidth/$srcwidth, $maxheight/$srcheight); //獲取縮略比例
//獲取按照源圖的比列
$createwidth = $width = (int)($srcwidth*$scale); //取得縮略寬
$createheight = $height = (int)($srcheight*$scale); //取得縮略高
$psrc_x = $psrc_y = 0;
if($autocut) //按照縮略圖的比例來獲取
{
if($maxwidth/$maxheight<$srcwidth/$srcheight && $maxheight>=$height) //如果縮略圖按比列比源圖窄的話
{
$width = $maxheight/$height*$width; //寬按照相應比例做處理
$height = $maxheight; //高不變
}
elseif($maxwidth/$maxheight>$srcwidth/$srcheight && $maxwidth>=$width)//如果縮略圖按比列比源圖寬的話
{
$height = $maxwidth/$width*$height;
$width = $maxwidth;
}
$createwidth = $maxwidth;
$createheight = $maxheight;
}
$createfun = 'imagecreatefrom'.($type=='jpg' ? 'jpeg' : $type); //找到不同的圖像處理函數
$srcimg = $createfun($image); //新建圖像
if($type != 'gif' && function_exists('imagecreatetruecolor'))
$thumbimg = imagecreatetruecolor($createwidth, $createheight); //新建一個真彩色圖像
else
$thumbimg = imagecreate($width, $height); //新建一個基於調色板的圖像

if(function_exists('imageresampled')) //重采樣拷貝部分圖像並調整大小,真彩
//imageresampled(新圖,源圖,新圖左上角x距離,新圖左上角y距離,源圖左上角x距離,源圖左上角y距離,新圖寬,新圖高,源圖寬,源圖高)
imageresampled($thumbimg, $srcimg, 0, 0, $psrc_x, $psrc_y, $width, $height, $srcwidth, $srcheight);
else //拷貝部分圖像並調整大小,調色板
imageresized($thumbimg, $srcimg, 0, 0, $psrc_x, $psrc_y, $width, $height, $srcwidth, $srcheight);
if($type=='gif' || $type=='png')
{
//imagecolorallocate 為一幅圖像分配顏色
$background_color = imagecolorallocate($thumbimg, 0, 255, 0); // 給基於調色板的圖像填充背景色, 指派一個綠色
// imagecolortransparent 將某個顏色定義為透明色
imagecolortransparent($thumbimg, $background_color); // 設置為透明色,若注釋掉該行則輸出綠色的圖
}
// imageinterlace 激活或禁止隔行掃描
if($type=='jpg' || $type=='jpeg') imageinterlace($thumbimg, $this->interlace);
$imagefun = 'image'.($type=='jpg' ? 'jpeg' : $type);
//imagejpeg imagegif imagepng
if(empty($filename)) $filename = substr($image, 0, strrpos($image, '.')).$suffix.'.'.$type; //獲取文件名
//aaa.gif aaa_thumb.gif
$imagefun($thumbimg, $filename); //新建圖像
imagedestroy($thumbimg); //銷毀縮略圖
imagedestroy($srcimg); //銷毀源圖
return $filename;
}
//watermark(源圖,生成文件,生成位置,水印文件,水印文本,背景色)
function watermark($source, $target = '', $w_pos = 0, $w_img = '', $w_text = '', $w_font = 12, $w_color = '#cccccc')
{
if(!$this->watermark_enable || !$this->check($source)) return false;
if(!$target) $target = $source;
if ($w_img == '' && $w_text == '')
$w_img = $this->w_img;
$source_info = getimagesize($source);
$source_w = $source_info[0]; //獲取寬
$source_h = $source_info[1]; //獲取高
if($source_w < $this->w_minwidth || $source_h < $this->w_minheight) return false; //寬和高達不到要求直接返回
switch($source_info[2]) //新建圖片
{
case 1 :
$source_img = imagecreatefromgif($source);
break;
case 2 :
$source_img = imagecreatefromjpeg($source);
break;
case 3 :
$source_img = imagecreatefrompng($source);
break;
default :
return false;
}
if(!empty($w_img) && file_exists($w_img)) //水印文件
{
$ifwaterimage = 1; //是否水印圖
$water_info = getimagesize($w_img); //水印信息
$width = $water_info[0];
$height = $water_info[1];
switch($water_info[2])
{
case 1 :
$water_img = imagecreatefromgif($w_img);
break;
case 2 :
$water_img = imagecreatefromjpeg($w_img);
break;
case 3 :
$water_img = imagecreatefrompng($w_img);
break;
default :
return;
}
}
else
{
$ifwaterimage = 0;
//imagettfbbox 本函數計算並返回一個包圍著 TrueType 文本范圍的虛擬方框的像素大小。
//imagettfbbox ( 字體大小, 字體角度, 字體文件,文件 )
$temp = imagettfbbox(ceil($w_font*1.2), 0, $this->fontfile, $w_text);//取得使用 truetype 字體的文本的范圍
$width = $temp[4] - $temp[6]; //右上角 X 位置 - 左上角 X 位置
$height = $temp[3] - $temp[5]; //右下角 Y 位置- 右上角 Y 位置
unset($temp);
}
switch($w_pos)
{
case 0: //隨機位置
$wx = rand(0,($source_w - $width));
$wy = rand(0,($source_h - $height));
break;
case 1: //左上角
$wx = 5;
$wy = 5;
break;
case 2: //上面中間位置
$wx = ($source_w - $width) / 2;
$wy = 0;
break;
case 3: //右上角
$wx = $source_w - $width;
$wy = 0;
break;
case 4: //左面中間位置
$wx = 0;
$wy = ($source_h - $height) / 2;
break;
case 5: //中間位置
$wx = ($source_w - $width) / 2;
$wy = ($source_h - $height) / 2;
break;
case 6: //底部中間位置
$wx = ($source_w - $width) / 2;
$wy = $source_h - $height;
break;
case 7: //左下角
$wx = 0;
$wy = $source_h - $height;
break;
case 8: //右面中間位置
$wx = $source_w - $width;
$wy = ($source_h - $height) /2;
break;
case 9: //右下角
$wx = $source_w - $width;
$wy = $source_h - $height ;
break;
default: //隨機
$wx = rand(0,($source_w - $width));
$wy = rand(0,($source_h - $height));
break;
}
if($ifwaterimage) //如果有水印圖
{
//imagemerge 拷貝並合並圖像的一部分
//參數(源圖,水印圖,拷貝到源圖x位置,拷貝到源圖y位置,從水印圖x位置,從水印圖y位置,高,寬,透明度)
imagemerge($source_img, $water_img, $wx, $wy, 0, 0, $width, $height, $this->w_pct);
}
else
{
if(!empty($w_color) && (strlen($w_color)==7))
{
$r = hexdec(substr($w_color,1,2)); //獲取紅色
$g = hexdec(substr($w_color,3,2)); //獲取綠色
$b = hexdec(substr($w_color,5)); //獲取藍色
}
else
{
return;
}
//imagecolorallocate 基於調色板的圖像填充背景色
//imagestring 水平地畫一行字元串
//imagestring(源圖,字體大小,位置X,位置Y,文字,顏色)
//參數($image, float $size, float $angle, int $x, int $y, int $color, string $fontfile, string $text)
imagettftext($source_img,$w_font,0,$wx,$wy,imagecolorallocate($source_img,$r,$g,$b),$this->fontfile,$w_text);
//imagestring($source_img,$w_font,$wx,$wy,$w_text,imagecolorallocate($source_img,$r,$g,$b));
}
//輸出到文件或者瀏覽器
switch($source_info[2])
{
case 1 :
imagegif($source_img, $target); //以 GIF 格式將圖像輸出到瀏覽器或文件
break;
case 2 :
imagejpeg($source_img, $target, $this->w_quality); //以 JPEG 格式將圖像輸出到瀏覽器或文件
break;
case 3 :
imagepng($source_img, $target); //以 PNG 格式將圖像輸出到瀏覽器或文件
break;
default :
return;
}
if(isset($water_info))
{
unset($water_info); //銷毀
}
if(isset($water_img))
{
imagedestroy($water_img); //銷毀
}
unset($source_info);
imagedestroy($source_img);
return true;
}
//gd庫必須存在,後綴為jpg|jpeg|gif|png,文件存在,imagecreatefromjpeg或者imagecreatefromgif存在
function check($image)
{
return extension_loaded('gd') &&
preg_match("/\.(jpg|jpeg|gif|png)/i", $image, $m) &&
file_exists($image) &&
function_exists('imagecreatefrom'.($m[1] == 'jpg' ? 'jpeg' : $m[1]));
//imagecreatefromjpeg
//imagecreatefromgif
//imagecreatefrompng
}
}

/**
縮略圖
1.新建一個圖像資源 通過 imagecreatefromgif imagecreatefromjpeg imagecreatefrompng
2.imageresampled 拷貝圖像,並調整大小

水印:圖片水印,文字水印
1. 創建圖像
2.加水印
圖片水印:imagemerge 把2張圖合並在一起
文字水印:imagettftext 向圖像寫入文字

*/
?>

⑺ 用php輸出圖片

php怎麼輸出圖片

首先設置頭部

header("Content-type:image/png");

然後創建圖片等操作

最後輸出:

imagepng($im,"1.png");

PHP怎麼顯示出圖片

不要用記事本直接編輯PHP文件,因為可能會存在bom頭信息,導致圖片不能正常顯示,你可以自行網路bom頭信息,建議使用編輯器notepad++,可以去除文件bom頭,圖片就會正常顯示

如何用PHP輸出圖片的寬度和高度?

list($src_w,$src_w)=getimagesize('圖片地址');

$src_w高$src_w寬

?phplist($src_w,$src_h)=getimagesize('圖片1的絕對路徑');?

imgsrc="圖片1的絕對路徑"width="?phpecho$src_w;?"height="?phpecho$src_h;?"/

看不明白?

html中如何用php輸出圖片?

把圖片地址用php代碼來代替就可以了。比如原本圖片地址是imgsrc="images/1.jpg"/,資料庫保存的是images/1.jpg,欄位名是」images「。那麼這邊就改成imgsrc="?php$row=['images']?"/。

php中echo顯示調用function的結果

1、我們先來查一下PHP的手冊,看看echo的描述,如圖。

2、echo—輸出一個或多個字元串,我們新建一個PHP文件,書寫PHP的代碼。

3、上面是字元串的輸出,下面我們來看看用echo輸出圖片,書寫PHP代碼。?phpecho"test";//字元串用引號包起來?,保存,打開任意一款網頁瀏覽器,輸入該PHP文件的路徑,看運行的效果。

4、接下來看看用echo輸出表格,書寫PHP代碼:?phpecho"table";//輸出表格的開始標簽echo"trtd表格/tdtd表格/td/tr";//輸出一行,行裡面有兩個單元格echo"/table";//輸出表格的結束標簽?。查看結果。

熱點內容
路由器怎麼用手機設置加密密碼 發布:2025-06-16 18:00:50 瀏覽:42
快手的文件夾名字 發布:2025-06-16 17:47:45 瀏覽:229
中交一公局無線網密碼多少 發布:2025-06-16 17:40:16 瀏覽:579
製作好的小麥窩料怎麼存儲 發布:2025-06-16 17:35:22 瀏覽:262
磁存儲自製 發布:2025-06-16 17:28:53 瀏覽:648
linux請求 發布:2025-06-16 17:23:53 瀏覽:741
弱加密定義 發布:2025-06-16 17:17:49 瀏覽:159
phpapc配置 發布:2025-06-16 17:15:30 瀏覽:230
安卓手機怎麼玩蘋果的閃耀暖暖 發布:2025-06-16 17:06:08 瀏覽:225
linux幫助文檔 發布:2025-06-16 17:00:54 瀏覽:176