ホームページ バックエンド開発 PHPチュートリアル PHP:实现给下传图片加水印的程序代码

PHP:实现给下传图片加水印的程序代码

Jun 13, 2016 am 10:41 AM
file image size

PHP:实现给上传图片加水印的程序代码
用PHP给上传图片加水印的程序是通过判断文件类型建立图形,然后把其复制到原建立的图形上,填充并建立rectangle,以备写入imagestring()或是原已经定好的图像程序当中判断水印类型:一是字符串,另是增加一个图形对象在上面。如果你对PHP的GD库比较熟悉,看懂这篇文章一点都不难了!

/*****************************************************参数说明:$max_file_size  : 上传文件大小限制, 单位BYTE$destination_folder : 上传文件路径$watermark   : 是否附加水印(1为加水印,其他为不加水印);使用说明:1. 将PHP.INI文件里面的"extension=php_gd2.dll"一行前面的;号去掉,因为我们要用到GD库;2. 将extension_dir =改为你的php_gd2.dll所在目录;****************************************************///上传文件类型列表$uptypes=array(    'image/jpg',     'image/jpeg',    'image/png',    'image/pjpeg',    'image/gif',    'image/bmp',    'image/x-png');$max_file_size=2000000;     //上传文件大小限制, 单位BYTE$destination_folder="uploadimg/"; //上传文件路径$watermark=1;      //是否附加水印(1为加水印,其他为不加水印);$watertype=1;      //水印类型(1为文字,2为图片)$waterposition=1;     //水印位置(1为左下角,2为右下角,3为左上角,4为右上角,5为居中);$waterstring="http://www.hackhome.com/";  //水印字符串$waterimg="xplore.gif";    //水印图片$imgpreview=1;      //是否生成预览图(1为生成,其他为不生成);$imgpreviewsize=1/2;    //缩略图比例?>
ログイン後にコピー



<html><head><title>ZwelL图片上传程序</title><style type="text/css"><!--body{ font-size: 9pt;}input{     background-color: #66CCFF;     border: 1px inset #CCCCCC;}--></style></head><body><form enctype="multipart/form-data" method="post" name="upform">  上传文件:  <input name="upfile" type="file">  <input type="submit" value="上传"><br>  允许上传的文件类型为:<?=implode(', ',$uptypes)?></form><?phpif ($_SERVER['REQUEST_METHOD'] == 'POST'){    if (!is_uploaded_file($_FILES["upfile"][tmp_name]))    //是否存在文件    {         echo "图片不存在!";         exit;    }    $file = $_FILES["upfile"];    if($max_file_size < $file["size"])    //检查文件大小    {        echo "文件太大!";        exit;    }    if(!in_array($file["type"], $uptypes))    //检查文件类型    {        echo "文件类型不符!".$file["type"];        exit;    }    if(!file_exists($destination_folder))    {        mkdir($destination_folder);    }    $filename=$file["tmp_name"];    $image_size = getimagesize($filename);    $pinfo=pathinfo($file["name"]);    $ftype=$pinfo['extension'];    $destination = $destination_folder.time().".".$ftype;    if (file_exists($destination) && $overwrite != true)     {        echo "同名文件已经存在了";        exit;    }    if(!move_uploaded_file ($filename, $destination))    {        echo "移动文件出错";        exit;    }    $pinfo=pathinfo($destination);    $fname=$pinfo[basename];    echo " <font color=red>已经成功上传</font><br>文件名:  <font color=blue>".$destination_folder.$fname."</font><br>";    echo " 宽度:".$image_size[0];    echo " 长度:".$image_size[1];    echo "<br> 大小:".$file["size"]." bytes";    if($watermark==1)    {        $iinfo=getimagesize($destination,$iinfo);        $nimage=imagecreatetruecolor($image_size[0],$image_size[1]);        $white=imagecolorallocate($nimage,255,255,255);        $black=imagecolorallocate($nimage,0,0,0);        $red=imagecolorallocate($nimage,255,0,0);        imagefill($nimage,0,0,$white);        switch ($iinfo[2])        {            case 1:            $simage =imagecreatefromgif($destination);            break;             case 2:            $simage =imagecreatefromjpeg($destination);            break;            case 3:            $simage =imagecreatefrompng($destination);            break;            case 6:            $simage =imagecreatefromwbmp($destination);            break;            default:            die("不支持的文件类型");            exit;        }        imagecopy($nimage,$simage,0,0,0,0,$image_size[0],$image_size[1]);        imagefilledrectangle($nimage,1,$image_size[1]-15,80,$image_size[1],$white);        switch($watertype)        {            case 1:   //加水印字符串            imagestring($nimage,2,3,$image_size[1]-15,$waterstring,$black);            break;            case 2:   //加水印图片            $simage1 =imagecreatefromgif("xplore.gif");            imagecopy($nimage,$simage1,0,0,0,0,85,15);            imagedestroy($simage1);            break;        }        switch ($iinfo[2])        {            case 1:            //imagegif($nimage, $destination);            imagejpeg($nimage, $destination);            break;            case 2:            imagejpeg($nimage, $destination);            break;            case 3:            imagepng($nimage, $destination);            break;            case 6:            imagewbmp($nimage, $destination);            //imagejpeg($nimage, $destination);            break;         }        //覆盖原上传文件        imagedestroy($nimage);        imagedestroy($simage);    }    if($imgpreview==1)    {    echo "<br>图片预览:<br>";    echo "<img src=\"".$destination."\"    style="max-width:90%" height=".($image_size[1]*$imgpreviewsize);    echo " alt=\"图片预览:\r文件名:".$destination."\r上传时间:\">";    }}?></body>
ログイン後にコピー

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

JavaのFile.length()関数を使用してファイルのサイズを取得します。 JavaのFile.length()関数を使用してファイルのサイズを取得します。 Jul 24, 2023 am 08:36 AM

ファイルのサイズを取得するには、Java の File.length() 関数を使用します。ファイル操作を扱うとき、ファイル サイズは非常に一般的な要件です。Java では、ファイルのサイズを取得するための非常に便利な方法、つまり length( ) File クラスのメソッド。この記事では、このメソッドを使用してファイルのサイズを取得する方法と、対応するコード例を紹介します。まず、サイズを取得したいファイルを表す File オブジェクトを作成する必要があります。 File オブジェクトを作成する方法は次のとおりです: Filef

PHP BLOBをファイルに変換する方法 PHP BLOBをファイルに変換する方法 Mar 16, 2023 am 10:47 AM

PHP BLOB をファイルに変換する方法: 1. PHP サンプル ファイルを作成します; 2. 「function blobToFile(blob) {return new File([blob], 'screenshot.png', { type: 'image/jpeg' })」を通じて} 」メソッドを使用して、Blob をファイルに変換できます。

紅夢ネイティブアプリケーションのランダムな詩 紅夢ネイティブアプリケーションのランダムな詩 Feb 19, 2024 pm 01:36 PM

オープン ソースの詳細については、次のサイトを参照してください。 51CTO Honmeng 開発者コミュニティ https://ost.51cto.com 実行環境 DAYU200:4.0.10.16SDK: 4.0.10.15IDE: 4.0.600 1. アプリケーションを作成するには、[ファイル] をクリックします。 >新しいファイル ->プロジェクトの作成。テンプレートを選択します: [OpenHarmony] EmptyAbility: プロジェクト名 shici、アプリケーション パッケージ名 com.nut.shici、およびアプリケーションの保存場所 XXX (中国語、特殊文字、スペースは含まれません) を入力します。 CompileSDK10、モデル: ステージ。デバイス

JavaのFile.renameTo()関数を使用してファイルの名前を変更する JavaのFile.renameTo()関数を使用してファイルの名前を変更する Jul 25, 2023 pm 03:45 PM

Java の File.renameTo() 関数を使用してファイルの名前を変更する Java プログラミングでは、ファイルの名前を変更する必要がよくあります。 Java には、ファイル操作を処理するための File クラスが用意されており、その renameTo() 関数でファイルの名前を簡単に変更できます。この記事では、Java の File.renameTo() 関数を使用してファイルの名前を変更する方法と、対応するコード例を紹介します。 File.renameTo() 関数は、File クラスのメソッドです。

JavaのFile.getParent()関数を使用してファイルの親パスを取得します。 JavaのFile.getParent()関数を使用してファイルの親パスを取得します。 Jul 24, 2023 pm 01:40 PM

ファイルの親パスを取得するには、Java の File.getParent() 関数を使用します Java プログラミングでは、ファイルやフォルダーを操作する必要がよくあります。場合によっては、ファイルの親パス、つまりファイルが存在するフォルダーのパスを取得する必要があることがあります。 Java の File クラスには、ファイルまたはフォルダーの親パスを取得する getParent() メソッドが用意されています。 File クラスは、ファイルとフォルダーを Java で抽象表現したもので、ファイルとフォルダーを操作するための一連のメソッドを提供します。その中で、手に入れてください

Bing Image Creatorを無料で使用する方法 Bing Image Creatorを無料で使用する方法 Feb 27, 2024 am 11:04 AM

この記事では、無料の BingImageCreator を使用して高品質の出力を取得する 7 つの方法を紹介します。 BingImageCreator (現在は ImageCreator for Microsoft Designer として知られています) は、優れたオンライン人工知能アート ジェネレーターの 1 つです。ユーザーのプロンプトに基づいて、非常にリアルな視覚効果を生成します。プロンプトがより具体的、明確、創造的であればあるほど、より良い結果が得られます。 BingImageCreator は、高品質の画像の作成において大きな進歩を遂げました。 Dall-E3 トレーニング モードを使用するようになり、より高いレベルの詳細とリアリズムが表示されます。ただし、一貫して HD 結果を生成できるかどうかは、高速な処理などのいくつかの要因によって決まります。

JavaのFile.getParentFile()関数を使用してファイルの親ディレクトリを取得します。 JavaのFile.getParentFile()関数を使用してファイルの親ディレクトリを取得します。 Jul 27, 2023 am 11:45 AM

ファイルの親ディレクトリを取得するには、Java の File.getParentFile() 関数を使用します Java プログラミングでは、ファイルやフォルダーを操作する必要がよくあります。ファイルの親ディレクトリを取得する必要がある場合は、Java が提供する File.getParentFile() 関数を使用できます。この記事では、この関数の使用方法とコード例を説明します。 Java の File クラスは、ファイルやフォルダーを操作するために使用される主なクラスです。ファイルのプロパティを取得および操作するための多くのメソッドを提供します

Xiaomi 携帯電話から画像を削除する方法 Xiaomi 携帯電話から画像を削除する方法 Mar 02, 2024 pm 05:34 PM

Xiaomi 携帯電話で画像を削除する方法? Xiaomi 携帯電話で画像を削除できますが、ほとんどのユーザーは画像の削除方法を知りません. 次に、編集者が提供する Xiaomi 携帯電話での画像の削除方法に関するチュートリアルです。ぜひご参加ください。 Xiaomi 携帯電話で画像を削除する方法 1. まず Xiaomi 携帯電話の [アルバム] 機能を開きます; 2. 次に、不要な写真を確認して右下の [削除] ボタンをクリックします; 3. 次に、[アルバム] をクリックします。上部にある特別な領域に入り、[ごみ箱]を選択します; 4. 次に、下図に示すように[ごみ箱を空にする]を直接クリックします; 5. 最後に[完全に削除]を直接クリックして完了します。

See all articles