国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

Jadual Kandungan
一、出現(xiàn)的問題
二、問題分析以及解決方案
Rumah pembangunan bahagian belakang tutorial php 二、問題分析以及解決方案

二、問題分析以及解決方案

Jun 13, 2016 pm 12:02 PM
gt height resize this width

【PHP縮略圖類】手機(jī)照片不能生成縮略圖問題以及解決方案

本文原創(chuàng),謝絕轉(zhuǎn)載

一、出現(xiàn)的問題

這幾天做了手機(jī)上傳照片并裁出縮略圖的接口的測試,發(fā)現(xiàn)不管怎么,生成的縮略圖都是一片漆黑。:-(

然后就把這個縮略圖類單拿出來進(jìn)行測試,發(fā)現(xiàn)只要是手機(jī)拍出來的照片都不能進(jìn)行縮略圖的處理。。。。


二、問題分析以及解決方案


經(jīng)過群里的請教,發(fā)現(xiàn)問題可能是出現(xiàn)在文件的類型的判斷上,因?yàn)閜ng圖片自帶一個透明的圖層,導(dǎo)致不能直接轉(zhuǎn)換成jpg的文件,而手機(jī)排出的照片擴(kuò)展名是jpg.

所以,得出的結(jié)論是手機(jī)拍出的是jpg擴(kuò)展名的png圖片。


由于擴(kuò)展名是可以隨意修改的,不是很能保證文件的信息的準(zhǔn)確性,所以我們采用了 getimagesize 函數(shù)進(jìn)行文件類型的獲取。


//獲取真實(shí)的圖片類型 list($width, $height, $type, $attr) = getimagesize($this->sur_file);    switch($type) {          case 1 :              $img_type = 'gif';              break;          case 2 :              $img_type = 'jpeg';              break;          case 3 :              $img_type = 'png';              break;          case 15 :              $img_type = 'wbmp';              break;          default :              return false;      }  


三、生成縮略圖類


下面把修改后的生成縮略圖的類貼出來,供大家指正~


/** * php生成縮略圖類 * 修改者 點(diǎn)點(diǎn)細(xì)雨  * 文章出處 : http://blog.csdn.net/diandianxiyu_geek * 2014-07-23 解決了圖片類型不能正常識別的問題 */class thumb {    public $sur_file; //讀取的原圖片    public $des_file; //生成目標(biāo)圖片    public $tem_file; //臨時圖片    public $tag;  //縮略標(biāo)簽  0,默認(rèn),按固定的高寬生成  1,按比列或固定最大長度生成  -1,按某個寬度或某個高度縮小    public $resize_width;  //$tag為0時,目標(biāo)文件寬    public $resize_height;  //$tag為0時,目標(biāo)文件高    public $sca_max; //$tag為1時,1時為最大長度(高或?qū)捴械淖畲笾?    public $type;  //圖片類型    public $width;  //原圖片寬    public $height;  //原圖片高    public $size;     //原圖大小    //構(gòu)造函數(shù)    public function __construct($surpic, $reswid, $reshei, $despic, $mark, $scamax) {        $this->sur_file = $surpic;        $this->resize_width = $reswid;        $this->resize_height = $reshei;        $this->tag = $mark;        $this->sca_max = $scamax;        list($width, $height, $type, $attr) = getimagesize($this->sur_file);        switch ($type) {            case 1 :                $img_type = 'gif';                break;            case 2 :                $img_type = 'jpeg';                break;            case 3 :                $img_type = 'png';                break;            case 15 :                $img_type = 'wbmp';                break;            default :                return false;        }        $this->type = $img_type; //獲取圖片類型        $this->init_img(); //初始化圖片        $this->des_file = $despic; //目標(biāo)圖片地址        $this->width = $width;        $this->height = $height;        $this->size = filesize($surpic);        $this->new_img();        imagedestroy($this->tem_file);    }    //圖片初始化函數(shù)    private function init_img() {        if ($this->type == 'jpeg') {            $this->tem_file = imagecreatefromjpeg($this->sur_file);        } elseif ($this->type == 'jpg') {            $this->tem_file = imagecreatefromjpeg($this->sur_file);        } elseif ($this->type == 'gif') {            $this->tem_file = imagecreatefromgif($this->sur_file);        } elseif ($this->type == 'png') {            $this->tem_file = imagecreatefrompng($this->sur_file);        } elseif ($this->type == 'bmp') {            $this->tem_file = imagecreatefrombmp($this->sur_file); //bmp.php中包含        }    }    //圖片生成函數(shù)    private function new_img() {        $ratio = ($this->width) / ($this->height); //原圖比例        $resize_ratio = ($this->resize_width) / ($this->resize_height); //縮略后比例        $newimg = imagecreatetruecolor($this->resize_width, $this->resize_height); //生成新圖片        imagealphablending($newimg, false); //這里很重要,意思是不合并顏色,直接用$img圖像顏色替換,包括透明色;        imagesavealpha($newimg, true);        if ($this->tag == 0) { //按固定高寬截取縮略圖            $newimg = imagecreatetruecolor($this->resize_width, $this->resize_height); //生成新圖片            if ($ratio >= $resize_ratio) {//即等比例下,縮略圖的高比原圖長,因此高不變                imagecopyresampled($newimg, $this->tem_file, 0, 0, 0, 0, $this->resize_width, $this->resize_height, (($this->height) * $resize_ratio), $this->height);            } elseif ($ratio tem_file, 0, 0, 0, 0, $this->resize_width, $this->resize_height, $this->width, (($this->width) / $resize_ratio));            }        } elseif ($this->tag == 1) { //按固定比例或最大長度縮小            if ($this->sca_max width) * ($this->sca_max)), (($this->height) * ($this->sca_max))); //生成新圖片                imagecopyresampled($newimg, $this->tem_file, 0, 0, 0, 0, (($this->width) * ($this->sca_max)), (($this->height) * ($this->sca_max)), $this->width, $this->height);            } elseif ($this->sca_max > 1) { //按某個最大長度縮小                if ($ratio >= 1) { //寬比高長                    $newimg = imagecreatetruecolor($this->sca_max, ($this->sca_max / $ratio)); //生成新圖片                    imagecopyresampled($newimg, $this->tem_file, 0, 0, 0, 0, $this->sca_max, ($this->sca_max / $ratio), $this->width, $this->height);                } else {                    $newimg = imagecreatetruecolor(($this->sca_max * $ratio), $this->sca_max); //生成新圖片                    imagecopyresampled($newimg, $this->tem_file, 0, 0, 0, 0, ($this->sca_max * $ratio), $this->sca_max, $this->width, $this->height);                }            }        } elseif ($this->tag == -1) { //按某個寬度或某個高度縮小            if ($resize_ratio >= 1) {//新高小于新寬,則圖片按新寬度縮小                $newimg = imagecreatetruecolor($this->resize_width, ($this->resize_width / $ratio)); //生成新圖片                imagecopyresampled($newimg, $this->tem_file, 0, 0, 0, 0, $this->resize_width, ($this->resize_width / $ratio), $this->width, $this->height);            } elseif ($resize_ratio resize_height * $ratio), $this->resize_height); //生成新圖片                imagecopyresampled($newimg, $this->tem_file, 0, 0, 0, 0, ($this->resize_height * $ratio), $this->resize_height, $this->width, $this->height);            }        }        //輸出新圖片        if ($this->type == 'jpeg' || $this->type == 'jpg') {            imagejpeg($newimg, $this->des_file);        } elseif ($this->type == 'gif') {            imagegif($newimg, $this->des_file);        } elseif ($this->type == 'png') {            imagepng($newimg, $this->des_file);        } elseif ($this->type == 'bmp') {            imagebmp($newimg, $this->des_file); //bmp.php中包含        }    }#function new_img() end}




Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Apakah perbezaan antara Huawei GT3 Pro dan GT4? Apakah perbezaan antara Huawei GT3 Pro dan GT4? Dec 29, 2023 pm 02:27 PM

Ramai pengguna akan memilih jenama Huawei apabila memilih jam tangan pintar Antaranya, Huawei GT3pro dan GT4 adalah pilihan yang sangat popular. Apakah perbezaan antara Huawei GT3pro dan GT4? 1. Rupa GT4: 46mm dan 41mm, bahan cermin kaca + badan keluli tahan karat + cangkang belakang gentian resolusi tinggi. GT3pro: 46.6mm dan 42.9mm, bahannya ialah kaca nilam + badan titanium/badan seramik + cangkerang belakang seramik 2. GT4 yang sihat: Menggunakan algoritma Huawei Truseen5.5+ terkini, hasilnya akan lebih tepat. GT3pro: Penambahan elektrokardiogram ECG dan saluran darah serta keselamatan

Betulkan: Alat snipping tidak berfungsi dalam Windows 11 Betulkan: Alat snipping tidak berfungsi dalam Windows 11 Aug 24, 2023 am 09:48 AM

Mengapa Alat Snipping Tidak Berfungsi pada Windows 11 Memahami punca masalah boleh membantu mencari penyelesaian yang betul. Berikut ialah sebab utama Alat Snipping mungkin tidak berfungsi dengan betul: Focus Assistant dihidupkan: Ini menghalang Snipping Tool daripada dibuka. Aplikasi rosak: Jika alat snipping ranap semasa pelancaran, ia mungkin rosak. Pemacu grafik lapuk: Pemacu yang tidak serasi mungkin mengganggu alat snipping. Gangguan daripada aplikasi lain: Aplikasi lain yang sedang berjalan mungkin bercanggah dengan Alat Snipping. Sijil telah tamat tempoh: Ralat semasa proses naik taraf boleh menyebabkan penyelesaian mudah ini sesuai untuk kebanyakan pengguna dan tidak memerlukan sebarang pengetahuan teknikal khusus. 1. Kemas kini apl Windows dan Microsoft Store

Bagaimana untuk memampatkan dan memformat imej dalam Vue? Bagaimana untuk memampatkan dan memformat imej dalam Vue? Aug 25, 2023 pm 11:06 PM

Bagaimana untuk memampatkan dan memformat imej dalam Vue? Dalam pembangunan bahagian hadapan, kami sering menghadapi keperluan untuk memampatkan dan memformat imej. Terutamanya dalam pembangunan mudah alih, untuk meningkatkan kelajuan memuatkan halaman dan menjimatkan trafik pengguna, adalah penting untuk memampatkan dan memformat imej. Dalam rangka kerja Vue, kita boleh menggunakan beberapa perpustakaan alat untuk memampatkan dan memformat imej. Mampatan menggunakan perpustakaan compressor.js compressor.js ialah JavaS untuk memampatkan imej

html的width是什么意思 html的width是什么意思 Jun 03, 2021 pm 02:15 PM

在html5中,width的意思是寬度,width屬性定義元素內(nèi)容區(qū)的寬度,在內(nèi)容區(qū)外面可以增加內(nèi)邊距、邊框和外邊距,只需要給元素設(shè)置“元素{width:數(shù)值}”即可。

Cara Membetulkan Ralat Tidak Dapat Menyambung ke App Store pada iPhone Cara Membetulkan Ralat Tidak Dapat Menyambung ke App Store pada iPhone Jul 29, 2023 am 08:22 AM

Bahagian 1: Langkah Penyelesaian Masalah Awal Menyemak Status Sistem Apple: Sebelum menyelidiki penyelesaian yang rumit, mari kita mulakan dengan asas. Masalahnya mungkin tidak terletak pada peranti anda; Lawati halaman Status Sistem Apple untuk melihat sama ada AppStore berfungsi dengan betul. Jika terdapat masalah, anda hanya boleh menunggu Apple membetulkannya. Semak sambungan Internet anda: Pastikan anda mempunyai sambungan internet yang stabil kerana isu "Tidak dapat menyambung ke AppStore" kadangkala boleh dikaitkan dengan sambungan yang lemah. Cuba tukar antara Wi-Fi dan data mudah alih atau tetapkan semula tetapan rangkaian (Umum > Tetapkan Semula > Tetapkan Semula Tetapan Rangkaian > Tetapan). Kemas kini versi iOS anda:

php提交表單通過后,彈出的對話框怎樣在當(dāng)前頁彈出,該如何解決 php提交表單通過后,彈出的對話框怎樣在當(dāng)前頁彈出,該如何解決 Jun 13, 2016 am 10:23 AM

php提交表單通過后,彈出的對話框怎樣在當(dāng)前頁彈出php提交表單通過后,彈出的對話框怎樣在當(dāng)前頁彈出而不是在空白頁彈出?想實(shí)現(xiàn)這樣的效果:而不是空白頁彈出:------解決方案--------------------如果你的驗(yàn)證用PHP在后端,那么就用Ajax;僅供參考:HTML code

Mari kita bincangkan mengapa Vue2 boleh mengakses atribut dalam pelbagai pilihan melalui ini Mari kita bincangkan mengapa Vue2 boleh mengakses atribut dalam pelbagai pilihan melalui ini Dec 08, 2022 pm 08:22 PM

Artikel ini akan membantu anda mentafsir kod sumber vue dan memperkenalkan sebab anda boleh menggunakan ini untuk mengakses sifat dalam pelbagai pilihan dalam Vue2. Saya harap ia akan membantu semua orang.

Adakah watch4pro lebih baik atau gt? Adakah watch4pro lebih baik atau gt? Sep 26, 2023 pm 02:45 PM

Watch4pro dan gt masing-masing mempunyai ciri yang berbeza dan senario yang berkenaan Jika anda menumpukan pada fungsi yang komprehensif, prestasi tinggi dan penampilan yang bergaya, dan sanggup menanggung harga yang lebih tinggi, maka Watch 4 Pro mungkin lebih sesuai. Jika anda tidak mempunyai keperluan fungsi yang tinggi dan memberi lebih perhatian kepada hayat bateri dan harga yang berpatutan, maka siri GT mungkin lebih sesuai. Pilihan terakhir harus diputuskan berdasarkan keperluan peribadi, belanjawan dan keutamaan Adalah disyorkan untuk mempertimbangkan dengan teliti keperluan anda sendiri sebelum membeli dan merujuk kepada ulasan dan perbandingan pelbagai produk untuk membuat pilihan yang lebih termaklum.

See all articles