CodeVault (ユーザ投稿コードライブラリ) ポータルトップ | phpspot

  一覧 | コード登録画面
前のページに戻る
イメージ、ラッパークラス [ 2005年03月01日 ]
<?php

class Image_Rapper {
    var 
$_image;
    var 
$_image2;
    var 
$_filename;
    
// コンストラクタ
    
function Image_Rapper($filename,$format)
    {
        if (
$format == "png") {
            
$im imagecreatefrompng($filename);
        } elseif(
$format == "jpg" || $format == "jpeg") {
            
$im imagecreatefromjpeg($filename);
        }
        
$this->_image $im;
        
$this->_image2 "";
        
$this->_filename $filename;
    }
    
// GDが使えるかどうか調べる
    
function check()
    {
        if (
function_exists("imagecreatefrompng")) {
            return 
TRUE;
        } else {
            return 
FALSE;
        }
    }
    
// 画像サイズを調べる
    
function size()
    {
        return 
getimagesize($this->_filename);
    }
    
// 画像をリサイズする
    
function resize($to_width$to_height "")
    {
        
$src =& $this->_image;
        list(
$width,$height) = $this->size();
        
// 高さが無効であれば再計算
        
if ($to_height == "") {
            
$to_height = ($height $to_width) / $width;
        }
        
$dst imagecreatetruecolor($to_width,$to_height);
        
imagecopyresized($dst,$src,0,0,0,0,$to_width,$to_height,$width,$height);
        
$this->_image2 $dst;
    }
    
// 画像を標準出力に出力
    
function output($format="jpg")
    {
        if (
$this->_image2 != "") {
            
$im $this->_image2;
        } else {
            
$im $this->_image;
        }

        if (
$format == "png") {
            
imagepng($im);
        } elseif(
$format == "jpg" || $format == "jpeg") {
            
imagejpeg($im);
        }
    }
}

/**
 * 使い方
 *
 * // 画像
 * $image = new Image_Rapper("sample.jpg","jpg");
 * // 画像をリサイズ
 * $image->resize(80);
 * // 標準出力に画像を出力
 * $image->output("png");
 */
?>

投稿者:no-name