ホームページ > バックエンド開発 > PHPチュートリアル > PHP gd2 が写真/テキスト透かし/画像透かし/比例サムネイル/実装コードをアップロードする_PHP チュートリアル

PHP gd2 が写真/テキスト透かし/画像透かし/比例サムネイル/実装コードをアップロードする_PHP チュートリアル

WBOY
リリース: 2016-07-21 15:38:25
オリジナル
900 人が閲覧しました

コードをコピーします コードは次のとおりです:

//アップロードファイルタイプリスト
$uptypes=array(
'image/jpg',
'image/jpeg',
'image/png',
'image/pjpeg',
'image /gif',
'image/bmp',
'image/x-png'
);
$max_file_size = 200000; //アップロード ファイル サイズの制限、単位 BYTE
$path_im = "prod_img/";画像保存フォルダパス
$path_sim = "prod_simg/"; //サムネイル保存フォルダパス
$watermark = 1; //ウォーターマークを付けるかどうか(1はウォーターマークを付けることを意味し、それ以外はウォーターマークを付けないことを意味します); //ウォーターマークの種類 (1 はテキスト、2 は画像)
$waterstring = "[url=http://www.jy17.com/]http://www.jy17.com/[/url]";透かし文字列
$waterimg = "water.png"; //透かし画像ファイルのパス
$watercleearly = 100; //透かしの透明度 0 ~ 100、小さい数値は透明度が高くなります
$imcleearly = 100; // , 数値が大きいほど、ファイルサイズがより鮮明になり、ファイルサイズも大きくなります
$simcleearly = 75 //サムネイル解像度 0-100、数値が大きいほど、ファイルサイズがより鮮明になります
$smallmark; = 1; //サムネイルを生成するかどうか (1 は加算で生成され、その他は生成されません); // サムネイルの幅を定義し、高さは均等に拡大縮小するので、 widths
?>

ファイルをアップロード:


アップロードできるファイルの種類は次のとおりです: form>
if ($_SERVER['REQUEST_METHOD '] == 'POST')
{
if (!is_uploaded_file($_FILES["upfile"][tmp_name]))
//ファイルが存在するかどうか
{
echo "画像が存在しません!";
終了;
$file = $_FILES["upfile"]
if($max_file_size < $file["size"])
//ファイルサイズ
{ $max_file_size = $max_file_size/1000;
echo "ファイルが大きすぎます。".$max_file_size." KB を超えました!"
終了
}
if(!in_array($file_type"]) ,$uptypes))
//ファイルの種類を確認します
{
echo "ファイルの種類が一致しません!" .$file["type"]
}
if(!file_exists($path_im))
//アップロードディレクトリが存在するかどうかを確認し、存在しない場合は作成します
{
mkdir($path_im);
}
if( !file_exists($path_sim))
//サムネイルディレクトリが存在するかどうかを確認し、存在しない場合は作成します
{
mkdir($path_sim);
$filename = $file["tmp_name"];
$src_w = $im_size[0]; ];
$src_type = $im_size[2];
$pinfo = pathinfo($file["name"]);
$all_path = $path_im.time(); ".".$filetype; //パス + ファイル名、現在の名前はアップロード時間に基づいています
if (file_exists($all_path))
echo "同じ名前のファイルが既に存在します"
}
if; (!move_uploaded_file ($filename,$all_path))
{
echo "ファイルの移動中にエラーが発生しました"
}
$pinfo = pathinfo( $all_path)
echo "< ;font color=red>は正常にアップロードされました
ファイル名: ".$all_path ."
";
echo "幅: ".$src_w."px ";
echo "長さ: ".$src_h."px ";
echo "
サイズ: ".$file["size"] バイト";
switch($ src_type)//ソース画像ファイルの種類を決定します
{
case 1://gif
$src_im = imagecreatefromgif($all_path);//ソース画像ファイルから画像を取得します
case 2://jpg
$ src_im = imagecreatefromjpeg($all_path);
break;
case 3://png
$src_im = imagecreatefrompng($all_path);
// case 6:
//$src_im=imagecreatefromwbmp($all_path); //break;
デフォルト:
die("サポートされていないファイルの種類");
if($watermark == 1)
{
//$iinfo = getimagesize($all_path,$iinfo);
$dst_im = imagecreatetruecolor($src_w,$src_h);
//同じサイズの画像を作成します元の画像サイズの True color ビットマップ
$white = imagecolorallocate($dst_im,255,255,255);//White
//新しい画像を背景色で塗りつぶします
$black = imagecolorallocate($dst_im,0,0,0); //黒
$ red = imagecolorallocate($dst_im,255,0,0);//赤
$orange = imagecolorallocate($dst_im,255,85,0);//オレンジ
imagefill($dst_im,0,0) ,$white);
imagecopymerge($dst_im,$src_im,0,0,0,0,$src_w,$src_h,100);//元の画像が新しい True Color ビットマップに書き込まれます
//imagefilledrectangle($) dst_im,1,$ src_h-15,80,$src_h,$white);
switch($watertype)
{
case 1: //ウォーターマーク文字列を追加
imagestring($dst_im,5,5,$src_h-20, $waterstring,$ orange); //テキスト透かし、フォント番号 5、オレンジ色、背景画像の左下隅にあります
case 2: //透かし画像を追加します
$lim_size = getimagesize($waterimg) ; //ウォーターマーク画像のサイズと情報を取得します
switch($lim_size[2]) //ウォーターマーク画像のファイルタイプを決定します
{
case 1://gif
$src_lim = imagecreatefromgif($waterimg);画像
ケース 2://jpg
$src_lim = imagecreatefromjpeg($waterimg);
ケース 3://png
$src_lim = imagecreatefrompng($waterimg);
//$src_im=imagecreatefromwbmp($waterimg);
デフォルト:
die("サポートされていないファイルの種類")
}
$src_lw = ($src_w-$lim_size[0]); 2; //透かしは背景画像の中央に配置されます 幅の位置
$src_lh = ($src_h-$lim_size[1])/2; //高さの位置
imagecopymerge($dst_im,$src_lim,$src_lw, $src_lh,0,0,$lim_size[0],$lim_size [1],$watercleally);// 2 つの画像を結合し、ウォーターマークの透明度を設定します $waterclely
imagedestroy($src_lim)
break( $src_type)
{
case 1:
imagegif($dst_im, $all_path,$imcleearly);// gif ファイルを生成、画像解像度 0-100
break;
case 2:
imagejpeg($dst_im, $all_path,$ imcleearly);//jpg ファイルを生成、画像解像度 0-100
break;
case 3:
imagepng($dst_im,$all_path,$imcleearly);//png ファイルを生成、画像解像度 0-100
/ /case 6:
//imagewbmp($dst_im, $all_path);
break;
//キャッシュを解放する
imagedestroy($dst_im)
}
if($smallmark == 1)
$sall_path = $path_sim.time().".".$ filetype;
if (file_exists($sall_path))
{
echo "同じ名前のファイルが既に存在します"
}
if($src_w < = $dst_sw) // 元の画像サイズ <= サムネイル サイズ
{
$dst_sim = imagecreatetruecolor($src_w,$src_h) // 新しいサムネイル True Color ビットマップを作成
imagecopymerge($dst_sim,$src_im,0,0); ,0,0,$src_w,$src_h,100); //元の画像が新しい True Color ビットマップに書き込まれます
}
if($src_w > $dst_sw) // 元の画像のサイズ >
$dst_sh = $dst_sw/$src_w*$src_h;
$dst_sim = imagecreatetruecolor($dst_sw,$dst_sh) //新しいサムネイル True Color ビットマップを作成します (元の画像サイズを比例的に縮小します)
imagecopyresampled($dst_sim,$); src_im,0,0,0,0,$dst_sw, $dst_sh,$src_w,$src_h); //元の画像が新しい True Color ビットマップに書き込まれます
}
switch($src_type)
{
case 1:
imagegif($dst_sim,$sall_path,$simcleearly); // 画像解像度 0-100 を生成します
case 2:
imagejpeg($dst_sim,$sall_path,$simcleearly); // jpg ファイルを生成します画像解像度 0-100
break;
case 3 :
imagepng($dst_sim,$sall_path,$simcleearly);//画像解像度 0-100
break;
//imagewbmp( $ dst_sim、$ sall_path);等しい比率でサムネイルを生成する関数 2



コードをコピー

コードは次のとおりです:

function reSizeImg($imgSrc, $resize_width, $resize_height, $isCut=false) {
//画像の種類
$type = substr ( strrchr ( $imgSrc, "." ), 1 );
if ($type == "jpg") {
$im = imagecreatefromjpeg ( $imgSrc );
if ($type == "gif") {
$im = imagecreatefromgif ( $imgSrc ); のようにします。 if ($type == "png") {
$im = imagecreatefrompng ( $imgSrc );
//ターゲット画像アドレス
$full_length = strlen ( $type ); $name_length = $full_length - $type_length;
$name = substr ( $imgSrc, 0, $name_length - 1 );
$width = $type; ;
$height = imagey ( $im );
//画像を生成
//変更された画像の比率
$resize_ratio = ($resize_width) / ($resize_height); rate = ($width) / ($height);
if (($isCut) == 1) //トリミング
{
if ($ratio >= $resize_ratio) //高優先度
{
$ newimg = imagecreatetruecolor ( $resize_width, $resize_height );
imagecopyresampled ( $newimg, $im, 0, 0, 0, 0, $resize_width, $resize_height, (($height) * $resize_ratio), $height ); , $dstimg );
}
if ($ratio < $resize_ratio) //最初の幅
{
$newimg = imagecreatetruecolor ( $resize_width, $resize_height );
imagecopyresampled ( $newimg, $im, 0, 0, 0 , 0, $resize_width, $resize_height, $width, (($width) / $resize_ratio) );
ImageJpeg ( $newimg, $dstimg ); else //トリミングなし
{
if ($ratio >) ;= $resize_ratio) {
$newimg = imagecreatetruecolor ( $resize_width, ($resize_width) / $ratio );
imagecopyresampled ( $newimg, $im, 0, 0, 0, 0, $resize_width, ($resize_width) / $比率, $width, $height );
ImageJpeg ( $newimg, $dstimg );
}
if ($ratio < $resize_ratio) {
$newimg = imagecreatetruecolor (($resize_height) * $ratio, $resize_height );
imagecopyresampled ( $newimg, $im, 0, 0, 0, 0, ($resize_height) * $ratio, $resize_height, $width, $height );
ImageJpeg ( $newimg, $dstimg );イメージデストロイ ( $im )
}





http://www.bkjia.com/PHPjc/321752.html

www.bkjia.com

tru​​e

http://www.bkjia.com/PHPjc/321752.html

技術記事

次のようにコードをコピーします。 ?php //ファイル タイプ リストをアップロード $uptypes=array( 'image/jpg', 'image/jpeg', 'image/png', 'image/pjpeg', 'image/gif', '画像 /bmp'、'画像/x-png' ); $max_fi...

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート