Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Mengubah Ukuran Gambar PHP

Sepengetahuan saya, Anda tidak dapat mengubah ukuran gambar sebelum mengunggahnya. (Saya bisa saja salah!) Namun, ketika Anda mengunggah gambar, gambar itu akan menjadi file sementara. Anda dapat mengubah ukuran gambar sementara dan menyalin gambar yang diubah ukurannya ke tujuan akhirnya.

Kode ini diadaptasi dari cuplikan di FliquidStudios:Mengubah ukuran gambar di PHP dengan GD dan Imagick .

Karena (sepertinya) Anda ingin menjaga lebar tetap konstan, Anda tidak perlu melakukan banyak pengujian rasio.

Pembaruan:

Anda seharusnya dapat menggunakan ini sebagai pengganti kode asli Anda. Sebagian besar tidak berubah.

<?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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. php:Simpan gambar ke dalam gumpalan Mysql, Baik atau buruk?

  2. Windows Batch Script untuk mencadangkan database MySQL lokal &hanya menyimpan N FOLDER terbaru dengan file cadangan

  3. Bagaimana cara mengambil cadangan satu tabel dalam database MySQL?

  4. Mysql Meningkatkan kinerja variabel

  5. Cara Menghitung Persentase Pertumbuhan Bulan Per Bulan di MySQL