ホームページ > バックエンド開発 > PHPチュートリアル > アップロードした写真に透かしを追加しますか?解決方法

アップロードした写真に透かしを追加しますか?解決方法

WBOY
リリース: 2016-06-13 13:38:04
オリジナル
1425 人が閲覧しました

アップロードした写真に透かしを追加しますか? ? ?
写真をアップロードするために透かしを追加しますか? ? ?


写真をアップロードする機能を作りました (テスト後、写真をアップロードできました。これで問題ありません)

今度は透かし画像 (小さな GIF) を追加したいと思います) 画像をアップロードするとき

画像をアップロードするときに、Web ページで関数 imagecopymerge() がエラーを報告するよう求められます。助けてください。


画像関数コード:

PHP コード
<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

-->
/*
$files为上传的图片文件
$folder为上传图片的文件夹
*/

function uploads($files,$folder)
{
    //取得图片的后缀名
    $knamearray=explode(".",$_FILES["upfile"]["name"]);
    $kname=$knamearray[count($knamearray)-1];

    //设置图片文件名为系统时间
    $filename=date('YmdHis');
    $filenames=$filename.$code.".".$kname;
    $upfile=$folder."/".$filenames;

    //上传图片
    move_uploaded_file($files,$upfile);

    //添加水印图片开始了……
    $im=imagecreatefromgif("wimages/logo.gif"); //logo.gif图片的尺寸为120*45
    imagecopymerge($upfile,$im,0,0,0,0,120,45,80); //现在提示这句有问题。。。

    return $filenames;//回传图片文件名
}

ログイン後にコピー


-----解決策------------- -------------------
$im=imagecreatefromgif("wimages/logo.gif"); // logo.gif 画像のサイズは120*45
パスを相対パスに変更するのが最善です;
imagecopymerge($upfile,$im, 0,0,0,0,120,45,80); //ここで問題があります。この文。 。 。
ポスターは、imagecopymerge の各パラメーターの意味を説明するのに役立ちますか?
------解決策---------
話し合う
$im=imagecreatefromgif("wimages/logo.gif"); //logo.gif 画像のサイズは 120*45 です
パスを相対パスに変更することをお勧めします。
imagecopymerge( $upfile, $im,0,0,0,0,120,45,80); //この文には問題があります。 。 。
ポスターは、imagecopymerge の各パラメーターの意味を説明するのに役立ちますか?

------解決策--------
は次のように記述できます:

$description ="/upload/imag_1123323.jpg";//これは透かしを入れる画像のパスとファイル名です

$nimage=imagecreatetruecolor($image_size[0],$image_size[1] ]); // 新しいトゥルー カラー イメージを作成します
//$image_size は、透かしを入れる画像のサイズ情報の配列です。

$simage=imagecreatefromgif($destination);透かしを入れる対象は gif 形式で読み込まれています;

imagecopy($nimage,$simage,0,0,0,0,$image_size[0],$image_size[1]);
//ウォーターマークを入れるコンテンツを配置します 作成された True Color イメージにコピーします;
imagedestroy($simage) // Destroy
$simage1 = imagecreatefromgif("wimages/logo.gif")// このパスは修正する必要があります
// ウォーターマーク画像を
に読み込みます imagecopy($nimage,$simage1,0,0,0,0,85,15); // ウォーターマークをそこにコピーします。 imagejpeg($ nimage,$descrtion); // 3 つの画像を重ね合わせた新しい画像をウォーターマークなしで元の画像として保存

imagedestroy($nimage) // Destroy
imagedestroy($simage);

------解決策------------------

最近、インターネットを使って修正して作成し、クラス化しました。 このクラスを使用すると、複数の写真を作成してアップロードできます。 。 。 。
PHP コード
class upimg{ //このクラスは、$uptypes 配列内のタイプの画像をアップロードするために使用されます。setWaterMark()
/**
 * <br> * 画像に透かしを追加します。 <br> * $msg、$img_width、$img_height、$save_dir、$img_size 変数に外部からアクセスします <br> * 画像のアップロード中に発生したエラーを取得しますprocess 、および画像のアップロード後に保存されるパス、画像サイズ、その他の情報 <br>*/ <br> private $uptypes = array( 'image/gif','image/jpg','image/jpeg','image/png','image/pjpeg');//'image/bmp','image/x-png'); <br> プライベート $max_file_size = 200000; <br> プライベート $dir_folder = "../imageupload/"; <br> プライベート $water_type = 1; http://www.516ya.cn"; <br> private $water_img = "xplore.gif"; <br> private $create_water= false; <br> private $overwrite = false; <br> <br> public $ msg= ""; <br> public $img_height=0; <br> public $img_size=0; ; <br> <br> 関数 setWaterMark(){ <br> $this->create_water = true; <br> } <br> <br> 関数 startUpload($files){ <br> <br> <br> if( !is_uploaded_file($files['tmp_name'])) <br> { <br> $this->msg.="画像が存在しません!--";
ログイン後にコピー
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート