sql >> データベース >  >> RDS >> Mysql

PHP画像のサイズ変更

    私の知る限り、の画像のサイズを変更することはできません。 アップロードします。 (私は間違っている可能性があります!)ただし、画像をアップロードすると、一時ファイルになります。一時的な画像のサイズを変更し、サイズ変更した画像を最終的な宛先にコピーできます。

    このコードは、FliquidStudiosのスニペットから適応されました:GDおよびImagickを使用したPHPでの画像のサイズ変更

    幅を一定に保ちたいので、実際には多くの比率テストを行う必要はありません。

    更新:

    元のコードの代わりにこれを使用できるはずです。ほとんど変更されていません。

    <?php
    
    // resizes an image to fit a given width in pixels.
    // works with BMP, PNG, JPEG, and GIF
    // $file is overwritten
    function fit_image_file_to_width($file, $w, $mime = 'image/jpeg') {
        list($width, $height) = getimagesize($file);
        $newwidth = $w;
        $newheight = $w * $height / $width;
    
        switch ($mime) {
            case 'image/jpeg':
                $src = imagecreatefromjpeg($file);
                break;
            case 'image/png';
                $src = imagecreatefrompng($file);
                break;
            case 'image/bmp';
                $src = imagecreatefromwbmp($file);
                break;
            case 'image/gif';
                $src = imagecreatefromgif($file);
                break;
        }
    
        $dst = imagecreatetruecolor($newwidth, $newheight);
        imagecopyresampled($dst, $src, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);
    
        switch ($mime) {
            case 'image/jpeg':
                imagejpeg($dst, $file);
                break;
            case 'image/png';
                imagealphablending($dst, false);
                imagesavealpha($dst, true);
                imagepng($dst, $file);
                break;
            case 'image/bmp';
                imagewbmp($dst, $file);
                break;
            case 'image/gif';
                imagegif($dst, $file);
                break;
        }
    
        imagedestroy($dst);
    }
    
    // init file vars
    $pic  = $_FILES['photo']['name'];
    $target = 'uploads/' . basename( $_FILES['photo']['name']);
    $temp_name = $_FILES['photo']['tmp_name'];
    $type = $_FILES["photo"]["type"];
    
    // Connects to your Database 
    mysql_connect("hostname", "username", "password") or die(mysql_error()) ; 
    mysql_select_db("database") or die(mysql_error()) ; 
    
    // get form data
    $name = mysql_real_escape_string(isset($_POST['name']) ? $_POST['name'] : 'No name');
    
    //Writes the information to the database 
    mysql_query("INSERT INTO `table` (name, photo) VALUES ('$name','$pic')") ; 
    
    // resize the image in the tmp directorys
    fit_image_file_to_width($temp_name, 200, $type);
    
    //Writes the photo to the server
    if(move_uploaded_file($temp_name, $target)) {
    
        //Tells you if its all ok 
        echo "The file ". basename( $_FILES['photo']['name'] ). " has been uploaded"; 
    
    } else {
    
        //Gives and error if its not 
        echo "Sorry, there was a problem uploading your file."; 
    
    }
    
    ?>
    


    1. postgreSQLでアクセントを削除する関数

    2. Ruby onRailsDatabase.ymlファイルのMySQL構成を修正する

    3. 統計データを保存するには、DECIMAL、FLOAT、またはDOUBLEが必要ですか?

    4. テキストの位置を見つけ、テキストを抽出して、MySQLの新しい列に挿入します