ホームページ バックエンド開発 PHPチュートリアル php对图像的各种处理函数代码小结_php技巧

php对图像的各种处理函数代码小结_php技巧

May 17, 2016 am 08:56 AM
画像 対処する

一、创建图片资源

imagecreatetruecolor(width,height);
imagecreatefromgif(图片名称);
imagecreatefrompng(图片名称);
imagecreatefromjpeg(图片名称);画出各种图像 imagegif(图片资源,保存路径);
imagepng()
imagejpeg();

二、获取图片属性

imagesx(res//宽度
imagesy(res//高度
getimagesize(文件路径)
返回一个具有四个单元的数组。索引 0 包含图像宽度的像素值,索引 1 包含图像高度的像素值。索引 2 是图像类型的标记:1 = GIF,2 = JPG,3 = PNG,4 = SWF,5 = PSD,6 = BMP,7 = TIFF(intel byte order),8 = TIFF(motorola byte order),9 = JPC,10 = JP2,11 = JPX,12 = JB2,13 = SWC,14 = IFF,15 = WBMP,16 = XBM。这些标记与 PHP 4.3.0 新加的 IMAGETYPE 常量对应。索引 3 是文本字符串,内容为“height="yyy" width="xxx"”,可直接用于 IMG 标记。
销毁图像资源
imagedestroy(图片资源);

三、透明处理

PNG、jpeg透明色都正常,只有gif不正常

imagecolortransparent(resource image [,int color])//将某个颜色设置成透明色
imagecolorstotal()
imagecolorforindex();

四、图片的裁剪

imagecopyresized()
imagecopyresampled();

五、加水印(文字、图片)

字符串编码转换string iconv ( string $in_charset , string $out_charset , string $str )

六、图片旋转

imagerotate();//制定角度的图片翻转

七、图片的翻转

沿X轴   沿Y轴翻转

八、锐化

imagecolorsforindex()

imagecolorat()

在图片上画图形  $img=imagecreatefromgif("./images/map.gif");

复制代码 代码如下:

 $red= imagecolorallocate($img, 255, 0, 0);
 imageline($img, 0, 0, 100, 100, $red);
 imageellipse($img, 200, 100, 100, 100, $red);
 imagegif($img, "./images/map2.gif");
 imagedestroy($img);

图片普通缩放

复制代码 代码如下:

$filename="./images/hee.jpg";
 $per=0.3;
 list($width, $height)=getimagesize($filename);
 $n_w=$width*$per;
 $n_h=$width*$per;

 $new=imagecreatetruecolor($n_w, $n_h);

 $img=imagecreatefromjpeg($filename);
//拷贝部分图像并调整

 imagecopyresized($new, $img,0, 0,0, 0,$n_w, $n_h, $width, $height);
//图像输出新图片、另存为

 imagejpeg($new, "./images/hee2.jpg");

 imagedestroy($new);
 imagedestroy($img);


图片等比例缩放、没处理透明色
复制代码 代码如下:

function thumn($background, $width, $height, $newfile) {
 list($s_w, $s_h)=getimagesize($background);//获取原图片高度、宽度

 if ($width && ($s_w      $width = ($height / $s_h) * $s_w;
 } else {
     $height = ($width / $s_w) * $s_h;
 }

 $new=imagecreatetruecolor($width, $height);

 $img=imagecreatefromjpeg($background);

 imagecopyresampled($new, $img, 0, 0, 0, 0, $width, $height, $s_w, $s_h);

 imagejpeg($new, $newfile);

 imagedestroy($new);
 imagedestroy($img);
}

thumn("images/hee.jpg", 200, 200, "./images/hee3.jpg");


gif透明色处理
复制代码 代码如下:

function thumn($background, $width, $height, $newfile) {
 list($s_w, $s_h)=getimagesize($background);

 if ($width && ($s_w      $width = ($height / $s_h) * $s_w;
 } else {
     $height = ($width / $s_w) * $s_h;
 }

 $new=imagecreatetruecolor($width, $height);

 $img=imagecreatefromgif($background);

 $otsc=imagecolortransparent($img);
 if($otsc >=0 && $otst   $tran=imagecolorsforindex($img, $otsc);//索引颜色值

  $newt=imagecolorallocate($new, $tran["red"], $tran["green"], $tran["blue"]);

  imagefill($new, 0, 0, $newt);

  imagecolortransparent($new, $newt);
 }

 imagecopyresized($new, $img, 0, 0, 0, 0, $width, $height, $s_w, $s_h);

 imagegif($new, $newfile);

 imagedestroy($new);
 imagedestroy($img);
}

thumn("images/map.gif", 200, 200, "./images/map3.gif");


图片裁剪
复制代码 代码如下:

function cut($background, $cut_x, $cut_y, $cut_width, $cut_height, $location){

 $back=imagecreatefromjpeg($background);

 $new=imagecreatetruecolor($cut_width, $cut_height);

 imagecopyresampled($new, $back, 0, 0, $cut_x, $cut_y, $cut_width, $cut_height,$cut_width,$cut_height);

 imagejpeg($new, $location);

 imagedestroy($new);
 imagedestroy($back);
}

cut("./images/hee.jpg", 440, 140, 117, 112, "./images/hee5.jpg");


图片加水印

文字水印

复制代码 代码如下:

function mark_text($background, $text, $x, $y){
  $back=imagecreatefromjpeg($background);

  $color=imagecolorallocate($back, 0, 255, 0);

  imagettftext($back, 20, 0, $x, $y, $color, "simkai.ttf", $text);

  imagejpeg($back, "./images/hee7.jpg");

  imagedestroy($back);
 }

 mark_text("./images/hee.jpg", "细说PHP", 150, 250);

//图片水印
function mark_pic($background, $waterpic, $x, $y){
$back=imagecreatefromjpeg($background);
$water=imagecreatefromgif($waterpic);
$w_w=imagesx($water);
$w_h=imagesy($water);
imagecopy($back, $water, $x, $y, 0, 0, $w_w, $w_h);
imagejpeg($back,"./images/hee8.jpg");
imagedestroy($back);
imagedestroy($water);
}
mark_pic("./images/hee.jpg", "./images/gaolf.gif", 50, 200);

图片旋转

复制代码 代码如下:

$back=imagecreatefromjpeg("./images/hee.jpg");
 $new=imagerotate($back, 45, 0);
 imagejpeg($new, "./images/hee9.jpg");

图片水平翻转垂直翻转
复制代码 代码如下:

function turn_y($background, $newfile){
  $back=imagecreatefromjpeg($background);

  $width=imagesx($back);
  $height=imagesy($back);

  $new=imagecreatetruecolor($width, $height);

  for($x=0; $x    imagecopy($new, $back, $width-$x-1, 0, $x, 0, 1, $height);
  }

  imagejpeg($new, $newfile);

  imagedestroy($back);
  imagedestroy($new);
 }

 function turn_x($background, $newfile){
  $back=imagecreatefromjpeg($background);

  $width=imagesx($back);
  $height=imagesy($back);

  $new=imagecreatetruecolor($width, $height);

  for($y=0; $y    imagecopy($new, $back,0, $height-$y-1, 0, $y, $width, 1);
  }

  imagejpeg($new, $newfile);

  imagedestroy($back);
  imagedestroy($new);
 }

 turn_y("./images/hee.jpg", "./images/hee11.jpg");
 turn_x("./images/hee.jpg", "./images/hee12.jpg");


 图片锐化

复制代码 代码如下:

function sharp($background, $degree, $save){
 $back=imagecreatefromjpeg($background);

 $b_x=imagesx($back);
 $b_y=imagesy($back);

 $dst=imagecreatefromjpeg($background);
 for($i=0; $i  for($j=0; $j   $b_clr1=imagecolorsforindex($back, imagecolorat($back, $i-1, $j-1));\\前一个像素颜色数组
   $b_clr2=imagecolorsforindex($back, imagecolorat($back, $i, $j));\\取出当前颜色数组

   $r=intval($b_clr2["red"]+$degree*($b_clr2["red"]-$b_clr1["red"]));\\加深
   $g=intval($b_clr2["green"]+$degree*($b_clr2["green"]-$b_clr1["green"]));
   $b=intval($b_clr2["blue"]+$degree*($b_clr2["blue"]-$b_clr1["blue"]));

   $r=min(255, max($r, 0));//限制r范围在0-255之间
   $g=min(255, max($g, 0));
   $b=min(255, max($b, 0));

   if(($d_clr=imagecolorexact($dst, $r, $g, $b))==-1){//等于1不在颜色范围内
    $d_clr=Imagecolorallocate($dst, $r, $g, $b);//创建一个颜色
   }

   imagesetpixel($dst, $i, $j, $d_clr);
  }

 }
 imagejpeg($dst, $save);
 imagedestroy($back);
 imagedestroy($dst);
}

sharp("./images/hee.jpg", 20, "./images/hee13.jpg");

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、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衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

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

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

WIN10サービスホストの動作プロセスがCPUを過剰に占有している WIN10サービスホストの動作プロセスがCPUを過剰に占有している Mar 27, 2024 pm 02:41 PM

1. まず、タスクバーの空白スペースを右クリックして[タスクマネージャー]オプションを選択するか、スタートロゴを右クリックして[タスクマネージャー]オプションを選択します。 2. 開いたタスク マネージャー インターフェイスで、右端の [サービス] タブをクリックします。 3. 開いた[サービス]タブで、下の[サービスを開く]オプションをクリックします。 4. 表示される[サービス]ウィンドウで、[InternetConnectionSharing(ICS)]サービスを右クリックし、[プロパティ]オプションを選択します。 5. 表示されたプロパティ画面で[プログラムから開く]を[無効]に変更し、[適用]をクリックして[OK]をクリックします。 6. スタートロゴをクリックし、シャットダウンボタンをクリックして[再起動]を選択し、コンピュータの再起動を完了します。

CSV ファイル操作のクイックガイド CSV ファイル操作のクイックガイド Dec 26, 2023 pm 02:23 PM

CSV 形式ファイルを開いて処理する方法を簡単に学習します。データ分析と処理の継続的な開発により、CSV 形式は広く使用されるファイル形式の 1 つになりました。 CSV ファイルは、さまざまなデータ フィールドがカンマで区切られた、シンプルで読みやすいテキスト ファイルです。学術研究、ビジネス分析、データ処理のいずれの場合でも、CSV ファイルを開いて処理する必要がある状況に頻繁に遭遇します。次のガイドでは、CSV 形式ファイルを開いて処理する方法をすぐに学ぶ方法を説明します。ステップ 1: CSV ファイル形式を理解する まず、

iOS 17: 写真でワンクリックトリミングを使用する方法 iOS 17: 写真でワンクリックトリミングを使用する方法 Sep 20, 2023 pm 08:45 PM

iOS 17 の写真アプリを使用すると、Apple は写真を仕様に合わせて簡単にトリミングできるようになります。その方法については、読み続けてください。以前の iOS 16 では、写真アプリで画像をトリミングするにはいくつかの手順が必要でした。編集インターフェイスをタップし、トリミング ツールを選択し、ピンチでズームするジェスチャまたはトリミング ツールの角をドラッグしてトリミングを調整します。 iOS 17 では、Apple がありがたいことにこのプロセスを簡素化し、写真ライブラリで選択した写真を拡大すると、画面の右上隅に新しい切り抜きボタンが自動的に表示されるようになりました。クリックすると、選択したズームレベルで完全なトリミングインターフェイスが表示されるので、画像の好きな部分をトリミングしたり、画像を回転したり、画像を反転したり、画面比率を適用したり、マーカーを使用したりできます。

PHP で特殊文字を処理し、一重引用符を変換する方法を学習します。 PHP で特殊文字を処理し、一重引用符を変換する方法を学習します。 Mar 27, 2024 pm 12:39 PM

PHP 開発のプロセスでは、特殊文字の処理が一般的な問題になります。特に文字列処理では、特殊文字がエスケープされることがよくあります。その中でも、特殊文字を一重引用符に変換することは比較的一般的な要件です。これは、PHP では一重引用符が文字列をラップする一般的な方法であるためです。この記事では、PHP での特殊文字変換シングルクォーテーションの扱い方と具体的なコード例を説明します。 PHP では、特殊文字には一重引用符 (')、二重引用符 (")、バックスラッシュ () などが含まれますが、これらに限定されません。

iOS 17を使用してiPhoneで写真を編集する方法 iOS 17を使用してiPhoneで写真を編集する方法 Nov 30, 2023 pm 11:39 PM

モバイル写真は、私たちが人生の瞬間を捉えて共有する方法を根本的に変えました。スマートフォン、特に iPhone の出現がこの変化に重要な役割を果たしました。高度なカメラ技術と使いやすい編集機能で知られる iPhone は、アマチュア写真家にとっても経験豊富な写真家にとっても同様に第一の選択肢となっています。 iOS 17 のリリースは、この取り組みにおける重要なマイルストーンとなります。 Apple の最新アップデートでは、写真編集機能の強化セットが提供され、日常のスナップショットを視覚的に魅力的で芸術性の高い画像に変えるためのより強力なツールキットがユーザーに提供されます。この技術開発は写真撮影プロセスを簡素化するだけでなく、クリエイティブな表現の新たな道を切り開き、ユーザーが自分の写真にプロのタッチを簡単に注入できるようになります。

C# 開発で XML および JSON データ形式を処理する方法 C# 開発で XML および JSON データ形式を処理する方法 Oct 09, 2023 pm 06:15 PM

C# 開発で XML および JSON データ形式を処理する方法には、特定のコード サンプルが必要です。現代のソフトウェア開発では、XML と JSON の 2 つのデータ形式が広く使用されています。 XML (Extensible Markup Language) はデータの保存と送信に使用されるマークアップ言語であり、JSON (JavaScript Object Notation) は軽量のデータ交換形式です。 C# 開発では、XML と JSON データの処理と操作が必要になることがよくありますが、この記事では、C# を使用してこれら 2 つのデータ形式を処理し、添付する方法に焦点を当てます。

AI画像拡大技術のリーダー:Upscayl AI画像拡大技術のリーダー:Upscayl Oct 06, 2023 am 11:37 AM

デジタル時代では、画像はどこにでもあります。ソーシャル メディアで写真を共有する場合でも、商業の世界でブランドを宣伝する場合でも、誰もが鮮明で美しい画像を望んでいます。しかし、場合によっては低解像度の画像しか得られず、混乱したり失望したりすることがあります。しかし今、エキサイティングなソリューションがあります - Upscayl は、AI 画像拡大テクノロジーの先駆者であるオンライン ツールです。Image Upscayl は、最先端の人工知能テクノロジーを使用して、低解像度画像を高解像度に変換し、画像の品質と詳細を向上させる並外れた画像拡大ツールです。 。 Upscayl は、深層学習アルゴリズムを適用することで、画像内のパターンと構造を複雑な計算プロセスを通じて分析できます。

C# での例外処理とエラー ログのスキル C# での例外処理とエラー ログのスキル Oct 08, 2023 am 11:51 AM

C# における例外処理とエラー ログのスキル はじめに: ソフトウェア開発プロセスにおいて、例外処理とエラー ログは非常に重要なリンクです。 C# 開発者にとって、例外処理スキルとエラー ログ記録方法を習得すると、コードの追跡とデバッグが容易になり、プログラムの安定性と保守性が向上します。この記事では、C# で一般的に使用される例外処理手法を紹介し、読者が例外処理とエラー ログをより深く理解し、適用できるようにする具体的なコード例を示します。 1. 例外処理の基本概念 例外とは、

See all articles