1. まず、QR コードを生成する必要があります。
関数 __construct($ w1,$h1,$s1){
$this->w = $w1;
$this->s = $s1;
$this->outimgase( );
}
関数 qrcode(){
$post_data['cht'] = 'qr'] = $this; ->w."x" .$this->h;
$post_data['chl'] = $this->s;
$post_data['choe'] = "UTF-8"; = "http://chart.apis.google.com/chart";
$data_Array = array();
foreach($post_data as $key => $value)
{
$data_Array[] = $key. '='.$value;
$data = implode("&",$data_Array);
curl_setopt($ch, CURLOPT_POST, 1); 0);
curl_setopt($ch, CURLOPT_POSTFIELDS,$data);
$result =curl_exec($ch);閉じる($ch);
return $result;
function outimgase(){
echo $this->qrcode();
header("Content-type:image/png"); = new QRCode(300,300,"tianxin ");
2、次に PHP ファイルを通じて QR コードとターゲット画像を一緒に描画します。 コードは次のとおりです:
コードをコピーします。
コードは次のとおりです:
$surl = $_POST["url"];
function GrabImage($url,$filename="") {
if($url==""):return false;endif;
if($filename=="") {
$ext=strrchr($url,".");
if($ext!=".gif" && $ext!=".jpg"):return false;endif;
$filename=date("dMYHis").$ext;
}
ob_start();
readfile($url);
$img = ob_get_contents();
ob_end_clean();
$size = strlen($img);
$fp2=@fopen($ファイル名, "a");
fwrite($fp2,$img);
fclose($fp2);
$filename を返します;
}
$source = GrabImage("http://localhost/QRCode/QRCode.php","Myqrcode.png");
$water =GrabImage($surl,"t.png");
関数 getImageInfo($img){
$imageInfo = getimagesize($img);
if ($imageInfo !== false) {
$imageType = strto lower(substr(image_type_to_extension($imageInfo[2]), 1));
$imageSize = ファイルサイズ($img);
$info = array(
"幅" => $imageInfo[0],
"高さ" => $imageInfo[1],
"タイプ" => $imageType,
"サイズ" => $ imageSize,
"mime" => $imageInfo['mime']
);
$info を返します;
} else {
false を返す;
}
}
function subject($image, $thumbname, $type='', $maxWidth=200, $maxHeight=50, $interlace=true) {
// 获取原图情報
$info = getImageInfo($画像);
if ($info !== false) {
$srcWidth = $info['width'];
$srcHeight = $info['高さ'];
$type = 空($type) ? $info['type'] : $type;
$type = strto lower($type);
$インターレース = $インターレース ? 1:0;
設定解除($info);
$scale = min($maxWidth / $srcWidth, $maxHeight / $srcHeight); // 计算缩放比
if ($scale >= 1) {
// 超过原图大小不再缩略
$width = $srcWidth;
$height = $srcHeight;
} else {
// 缩略图尺寸
$width = (int) ($srcWidth * $scale);
$height = (int) ($srcHeight * $scale);
}
// ダウンロード入原图
$createFun = 'ImageCreateFrom' 。 ($type == 'jpg' ? 'jpeg' : $type);
$srcImg = $createFun($image);
//创建缩略図
if ($type != 'gif' && function_exists('imagecreatetruecolor'))
$thumbImg = imagecreatetruecolor($width, $height);
else
$thumbImg = imagecreate($width, $height);
// 复制图片
if (function_exists("ImageCopyResampled"))
imagecopyresampled($thumbImg, $srcImg, 0, 0, 0, 0, $width, $height, $srcWidth, $srcHeight);
else
imagecopyresize($thumbImg, $srcImg, 0, 0, 0, 0, $width, $height, $srcWidth, $srcHeight);
if ('gif' == $type || 'png' == $type) {
//imagealphablending($thumbImg, false);//取消默认の混色モード
//imagesavealpha($thumbImg,true); //完全に保存されるアルファ パス情報を設定します
$background_color = imagecolorallocate($thumbImg, 0, 255, 0); // 指派一个绿色
imagecolortransparent($thumbImg, $background_color); // 設定は透明色、若注释掉この行に表示される色の画像
}
}
// jpeg 图形設定を隔行扫描
if ('jpg' == $type || 'jpeg' == $type)
imageinterlace ($thumbImg、$interlace);
// 画像を生成
$imageFun = 'image' . ($type == 'jpg' ? 'jpeg' : $type);
$imageFun($thumbImg, $thumbname);
imagedestroy($thumbImg);
imagedestroy($srcImg);
$thumbname を返します;
}
false を返します。
}
function Water($source, $thumb, $savename="", $alpha=100){
//检查文件の有無
if (!file_exists($source) || !file_exists($thumb))
false を返します。
//画像情報
$sInfo = getImageInfo($source);
$water =親指($thumb,"wy.jpg","jpg",$sInfo["幅"]/4,$sInfo["高さ"]/4);
$wInfo = getImageInfo($water);
//場合は写真が水印の写真より小さく、写真は生成されません
if ($sInfo["width"] false を返します。
//建立画像
$sCreateFun = "imagecreatefrom" . $sInfo['タイプ'];
$sImage = $sCreateFun($source);
$wCreateFun = "imagecreatefrom" . $wInfo['タイプ'];
$wImage = $wCreateFun($water);
//画像の混色モードを設定します
imagealphablending($wImage, true);
//画像の位置、默认は右下角右对齐
// $posY = $sInfo["height"] - $wInfo["height"];
// $posX = $sInfo["width"] - $wInfo["width"];
$posY = ($sInfo["高さ"] - $wInfo["高さ"])/2;
$posX = ($sInfo["幅"] - $wInfo["幅"])/2;
//混合画像生成
imagecopymerge($sImage, $wImage, $posX, $posY, 0, 0, $wInfo['width'], $wInfo['height'], $alpha);
//出画像
$ImageFun = '画像' . $sInfo['タイプ'];
//如果没有给出保存文件名,默认是原画像名
if (!$savename) {
$savename = $source;
@リンク解除($source);
}
//画像保存
$ImageFun($sImage, $savename);
imagedestroy($sImage);
}
水($source,$water);
上記のコードでは、3 つの関数が使用されています。GrabImage() 関数は、QR コードを生成するファイルを画像に変換し、画像のスケーリングを処理し、ターゲット画像を 2 番目の位置に追加します。
3. 次のコードを含むエントリ ファイルindex.html を作成します:
送信された URL に注意してください " メソッド="post">
中央のデバイス
の画像に独自のQRコード生成を定義しますQR コードに生成されるコンテンツ: | | 独自の写真アドレスを追加してください: | |
http://www.bkjia.com/PHPjc/728109.html
www.bkjia.com
true
http://www.bkjia.com/PHPjc/728109.html
技術記事
1. まず、QR コードを生成する必要があります。次のようにコードをコピーします。 { $this-w = $w1 $...
;

PHPは、特にWeb開発の分野で、最新のプログラミングで強力で広く使用されているツールのままです。 1)PHPは使いやすく、データベースとシームレスに統合されており、多くの開発者にとって最初の選択肢です。 2)動的コンテンツ生成とオブジェクト指向プログラミングをサポートし、Webサイトを迅速に作成および保守するのに適しています。 3)PHPのパフォーマンスは、データベースクエリをキャッシュおよび最適化することで改善でき、その広範なコミュニティと豊富なエコシステムにより、今日のテクノロジースタックでは依然として重要になります。

PHPでは、弱い参照クラスを通じて弱い参照が実装され、ガベージコレクターがオブジェクトの回収を妨げません。弱い参照は、キャッシュシステムやイベントリスナーなどのシナリオに適しています。オブジェクトの生存を保証することはできず、ごみ収集が遅れる可能性があることに注意する必要があります。

\ _ \ _ Invokeメソッドを使用すると、オブジェクトを関数のように呼び出すことができます。 1。オブジェクトを呼び出すことができるように\ _ \ _呼び出しメソッドを定義します。 2。$ obj(...)構文を使用すると、PHPは\ _ \ _ Invokeメソッドを実行します。 3。ロギングや計算機、コードの柔軟性の向上、読みやすさなどのシナリオに適しています。

繊維はPhp8.1で導入され、同時処理機能が改善されました。 1)繊維は、コルーチンと同様の軽量の並行性モデルです。 2)開発者がタスクの実行フローを手動で制御できるようにし、I/O集約型タスクの処理に適しています。 3)繊維を使用すると、より効率的で応答性の高いコードを書き込むことができます。

PHPコミュニティは、開発者の成長を支援するための豊富なリソースとサポートを提供します。 1)リソースには、公式のドキュメント、チュートリアル、ブログ、LaravelやSymfonyなどのオープンソースプロジェクトが含まれます。 2)StackOverFlow、Reddit、およびSlackチャネルを通じてサポートを取得できます。 3)開発動向は、RFCに従うことで学ぶことができます。 4)コミュニティへの統合は、積極的な参加、コード共有への貢献、および学習共有への貢献を通じて達成できます。

PHP and Python each have their own advantages, and the choice should be based on project requirements. 1.PHPは、シンプルな構文と高い実行効率を備えたWeb開発に適しています。 2。Pythonは、簡潔な構文とリッチライブラリを備えたデータサイエンスと機械学習に適しています。

PHPは死にかけていませんが、常に適応して進化しています。 1)PHPは、1994年以来、新しいテクノロジーの傾向に適応するために複数のバージョンの反復を受けています。 2)現在、電子商取引、コンテンツ管理システム、その他の分野で広く使用されています。 3)PHP8は、パフォーマンスと近代化を改善するために、JITコンパイラおよびその他の機能を導入します。 4)Opcacheを使用してPSR-12標準に従って、パフォーマンスとコードの品質を最適化します。

PHPの将来は、新しいテクノロジーの傾向に適応し、革新的な機能を導入することで達成されます。1)クラウドコンピューティング、コンテナ化、マイクロサービスアーキテクチャに適応し、DockerとKubernetesをサポートします。 2)パフォーマンスとデータ処理の効率を改善するために、JITコンパイラと列挙タイプを導入します。 3)パフォーマンスを継続的に最適化し、ベストプラクティスを促進します。


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

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

メモ帳++7.3.1
使いやすく無料のコードエディター

MinGW - Minimalist GNU for Windows
このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

EditPlus 中国語クラック版
サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

SublimeText3 Linux 新バージョン
SublimeText3 Linux 最新バージョン
