PHP で角の丸い画像を生成する方法、_PHP チュートリアル
Jul 13, 2016 am 09:57 AMphpで角丸画像を生成する方法
この記事の例では、phpで角丸画像を生成する方法について説明します。参考のためにみんなで共有してください。詳細は以下の通りです
コードをコピーします コードは次のとおりです:<?php
$image_file = $_GET['src'];
$corner_radius = isset($_GET['radius']) ? $_GET['radius'] : 20; デフォルトのコーナー半径は 20px に設定されます
;
$topleft = (isset($_GET['topleft']) and $_GET['topleft'] == "no") // デフォルトでは左上の丸い角が表示されます
$bottomleft = (isset($_GET['bottomleft']) and $_GET['bottomleft'] == "no") // デフォルトでは左下の丸い角が表示されます
$bottomright = (isset($_GET['bottomright']) and $_GET['bottomright'] == "no") // 右下の丸い角がデフォルトで表示されます
$topright = (isset($_GET['topright']) and $_GET['topright'] == "no") ? // 右上の丸い角がデフォルトで表示されます
$imagetype=strto lower($_GET['imagetype']);
$backcolor=$_GET['バックカラー'];
$endsize=$corner_radius;
$startsize=$endsize*3-1;
$arcsize=$startsize*2+1;
if (($imagetype=='jpeg') または ($imagetype=='jpg')) {
$image = imagecreatefromjpeg($image_file);
} その他 {
if (($imagetype=='GIF') または ($imagetype=='gif')) {
$image = imagecreatefromgif($image_file);
} その他 {
$image = imagecreatefrompng($image_file);
}
}
$size = getimagesize($image_file);
// 左上隅
$background = imagecreatetruecolor($size[0],$size[1]);
imagecopymerge($background,$image,0,0,0,0,$size[0],$size[1],100);
$startx=$size[0]*2-1;
$starty=$size[1]*2-1;
$im_temp = imagecreatetruecolor($startx,$starty);
imagecopyresampled($im_temp, $background, 0, 0, 0, 0, $startx, $starty, $size[0], $size[1]);
$bg = imagecolorallocate($im_temp, hexdec(substr($backcolor,0,2)),hexdec(substr($backcolor,2,2)),hexdec(substr($backcolor,4,2));
$fg = imagecolorallocate($im_temp, hexdec(substr($forecolor,0,2)),hexdec(substr($forecolor,2,2)),hexdec(substr($forecolor,4,2)));
if ($topleft == true) {
imagearc($im_temp, $startsize, $startsize, $arcsize, $arcsize, 180,270,$bg);
imagefilltoborder($im_temp,0,0,$bg,$bg);
}
// 左下隅
if ($bottomleft == true) {
imagearc($im_temp,$startsize,$starty-$startsize,$arcsize,$arcsize,90,180,$bg);
imagefilltoborder($im_temp,0,$starty,$bg,$bg);
}
// 右下隅
if ($bottomright == true) {
imagearc($im_temp, $startx-$startsize, $starty-$startsize,$arcsize, $arcsize, 0,90,$bg);
imagefilltoborder($im_temp,$startx,$starty,$bg,$bg);
}
// 右上隅
if ($topright == true) {
imagearc($im_temp, $startx-$startsize, $startsize,$arcsize, $arcsize, 270,360,$bg);
imagefilltoborder($im_temp,$startx,0,$bg,$bg);
}
$newimage = imagecreatetruecolor($size[0],$size[1]);
imagecopyresampled($image,$im_temp,0,0,0,0,$size[0],$size[1],$startx,$starty);
// 最終画像を出力します
header("コンテンツタイプ: image/png");
imagepng($image);
imagedestroy($image);
imagedestroy($background);
imagedestroy($im_temp);
?>
この記事で説明した内容が皆様の PHP プログラミング設計に役立つことを願っています。

人気の記事

人気の記事

ホットな記事タグ

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

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

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

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

ホットトピック











Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド

PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法
