ホームページ  >  記事  >  バックエンド開発  >  初期化失敗phpバッチズーム画像コード[iniパラメータ制御]

初期化失敗phpバッチズーム画像コード[iniパラメータ制御]

WBOY
WBOYオリジナル
2016-07-29 08:44:23709ブラウズ

最初にiniファイルを使用して拡大縮小するサイズを設定します。幅または高さが両方とも0の場合は、元のサイズのままになります。指定されたサイズに引き伸ばされます。
注: ini ファイルが PHP を使用して解釈される場合、それはコメント ファイルとなり、何も出力されません。これはセキュリティ上の理由から意図的に行われます。 ; は ini ファイル内のコメントです。
私が設定したiniファイルの例は次のとおりです:

コードをコピーします コードは次のとおりです:


/*
;元の画像サイズを使用して画像形式を変換します
[翻訳]
width=0
height=0
;画像を指定したサイズに拡大します
[Stretch]
width=800
height=600
;高さの自動サイズで画像を指定した幅に拡大します
[AutoHeight]
width=740
height=0
;幅の自動サイズで指定された高さに画像をズームします
[AutoWidth]
width=0
height=380
*/
?> 以下は、次の php コードです。画像をズームします。変数クラスは配列です。ini ファイルで指定された設定をいくつでも選択できます:



コードをコピーします

コードは次のとおりです: $oimg = "test.jpg";//元の画像名

$classes = array('Translation','AutoHeight','AutoWidth','Stretch');//で定義されている新規作成画像のサイズのクラスを与える指定された ini ファイル
$suffix = 'jpg';//新しい画像のサフィックス
$inifile = 'image.ini.php';
$size = getimagesize($oimg); $size[1];
$name =explode('.', $oimg);
if(!file_exists($inifile)) die('Ini ファイルが存在しません!'); ,true);//ini ファイルからクラス スタイルのイメージ サイズを解析します
foreach($classes as $class){
foreach($cn as $k=>$v){
if($k==$class) {
if($v['幅'] && $v['高さ']){
$thumbWidth = $v['幅']
$thumbHeight = $v['高さ']; v['width']){
$thumbWidth = $v[' width'];
$thumbHeight =round($thumbWidth/$x);
}elseif($v['height']){
$thumbHeight = $v['height'];
$thumbWidth =round($thumbHeight *$x);
$thumbWidth = $size[0];
break;
}
}
if(!isset($thumbHeight) && !isset ($thumbWidth)) die('Ini ファイル設定エラー!');
$nimg = $name[0].'_'.$class.' .'.$suffix;//新しい画像ファイル名
$source = imagecreatefromjpeg($oimg);
$thumb = imagecreatetruecolor($thumbWidth, $thumbHeight);
imagecopyresampled($thumb,$source,0,0,0, 0,$thumbWidth,$thumbHeight,$size[0],$size [1]);
if($suffix=='jpg') $method = 'imagejpeg'
else $method='image'.$suffix ;
$method($thumb, $nimg);
imagedestroy($thumb);// 画像ソースを解放します
}

;
以上、初期化失敗のPHPバッチスケーリングイメージコード[iniパラメータ制御]を紹介しましたが、初期化失敗の内容も含めて、PHPチュートリアルに興味のある友人の参考になれば幸いです。


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