Rumah pembangunan bahagian belakang tutorial php PHP裁剪图片并存入mysql

PHP裁剪图片并存入mysql

Aug 08, 2016 am 09:30 AM
encode query quot

使用 PHP 处理图片时,常常需要对其进行裁剪。如何将裁剪后的图片存入 mysql 数据库是一个有趣的问题。首先,获得上传后文件:
$picFile = $_FILES["picFileName"];
$picType = $picFile["type"];  
$picData = file_get_contents($tempFile);  
Salin selepas log masuk
如果不需要更改图片大小而直接存入mysql,可以如下简单实现
$tempFile = $picFile["tmp_name"];  
$picData = base64_encode($picData);  

$query = "INSERT INTO image  
   (imgid, image, imgtype) 
   values( 
       null, 
       '$picData', 
       '$picType' 
    );"; 
$link->query($query);
Salin selepas log masuk
但如果要更改图片大小并以字符流的形式获得图片数据,则需要一点小技巧:
首先完成裁剪图片,获取图片对象
list($picW, $picH) = getimagesize($tempFile);  
if($picW>600){ //超出大小  
    $src = imagecreatefromjpeg($tempFile); //获取原图数据  
    $nW =550;  
    $nH = $picH*$nW/$picW;  
    $newPicTemp = imagecreatetruecolor($nW,$nH);  //创建彩色图片对象  
    imagecopyresampled($newPicTemp,$src,0,0,0,0,$nW,$nH,$picW,$picH);  
}
Salin selepas log masuk
这一步以后 newPicTemp 就是 resource 型的图片数据了,问题来了,观察上方代码,file_get_contents 返回的类型是 string,也是 base64_encode 的参数类型。 如何把 resource 转为 string 类型呢。 经过学习发现 PHP 有个这个函数
string ob_get_contents ( void )
Salin selepas log masuk
以字符串的形式返回输出缓冲区中的内容。
因此,思路就是把 resource 图片输出到缓冲区,然后用一个对象获取其内容。代码如下
ob_start(); //开启输出缓冲区  
imagejpeg($newPicTemp); //这个函数可以显示出图片,同时也是把数据输出  
$imgContent = ob_get_contents(); //获取字符流  
ob_end_clean();  //关闭并清除缓冲区  

$picData = base64_encode($imgContent); //不要忘记转码
Salin selepas log masuk
这样一来,就获得更改大小后的图片字符流了,可以存入mysql
最后销毁临时数据
imagedestroy($src);  
imagedestroy($newPicTemp);
Salin selepas log masuk
如果需要读取并显示图片,可以使用如下代码
$query = "SELECT image, imgtype from image where imgid = $imgid ;";  
$result = $link->query($query);  
$row = mysqli_fetch_array($result);  
$data = base64_decode( $row["image"]);  
$type = $row["imgtype"];  
  
ob_clean();  
header("Content-Type:'$type'");  
echo $data;  
Salin selepas log masuk
可以看出几个关键函数都含有 ob 标识。 ob 即 output buffer,是 PHP 非常关键且有用的一项工具参考 php.net

以上就介绍了PHP裁剪图片并存入mysql,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

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

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.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

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)

Cara menyusun semula berbilang lajur dalam Power Query melalui seret dan lepas Cara menyusun semula berbilang lajur dalam Power Query melalui seret dan lepas Mar 14, 2024 am 10:55 AM

Dalam artikel ini, kami akan menunjukkan kepada anda cara menyusun semula berbilang lajur dalam PowerQuery dengan menyeret dan melepaskan. Selalunya, apabila mengimport data daripada pelbagai sumber, lajur mungkin tidak berada dalam susunan yang diingini. Menyusun semula lajur bukan sahaja membolehkan anda menyusunnya dalam susunan logik yang sesuai dengan keperluan analisis atau pelaporan anda, ia juga meningkatkan kebolehbacaan data anda dan mempercepatkan tugas seperti menapis, mengisih dan melakukan pengiraan. Bagaimana untuk menyusun semula berbilang lajur dalam Excel? Terdapat banyak cara untuk menyusun semula lajur dalam Excel. Anda hanya boleh memilih pengepala lajur dan seret ke lokasi yang dikehendaki. Walau bagaimanapun, pendekatan ini boleh menjadi rumit apabila berurusan dengan jadual besar dengan banyak lajur. Untuk menyusun semula lajur dengan lebih cekap, anda boleh menggunakan editor pertanyaan yang dipertingkatkan. Mempertingkatkan pertanyaan

Pemalam pangkalan data React Query: cara mengimport dan mengeksport data Pemalam pangkalan data React Query: cara mengimport dan mengeksport data Sep 26, 2023 pm 05:37 PM

Pemalam pangkalan data ReactQuery: Kaedah untuk melaksanakan import dan eksport data, contoh kod khusus diperlukan Dengan aplikasi ReactQuery yang meluas dalam pembangunan bahagian hadapan, semakin ramai pembangun mula menggunakannya untuk mengurus data. Dalam pembangunan sebenar, kita selalunya perlu mengeksport data ke fail tempatan atau mengimport data daripada fail tempatan ke dalam pangkalan data. Untuk melaksanakan fungsi ini dengan lebih mudah, anda boleh menggunakan pemalam pangkalan data ReactQuery. Pemalam pangkalan data ReactQuery menyediakan satu siri kaedah

php提交表单通过后,弹出的对话框怎样在当前页弹出,该如何解决 php提交表单通过后,弹出的对话框怎样在当前页弹出,该如何解决 Jun 13, 2016 am 10:23 AM

php提交表单通过后,弹出的对话框怎样在当前页弹出php提交表单通过后,弹出的对话框怎样在当前页弹出而不是在空白页弹出?想实现这样的效果:而不是空白页弹出:------解决方案--------------------如果你的验证用PHP在后端,那么就用Ajax;仅供参考:HTML code

Bagaimana untuk memisahkan data kepada NTFS menggunakan Power Query Bagaimana untuk memisahkan data kepada NTFS menggunakan Power Query Mar 15, 2024 am 11:00 AM

Artikel ini akan memperkenalkan cara menggunakan PowerQuery untuk memisahkan data kepada baris. Apabila mengeksport data daripada sistem atau sumber lain, adalah perkara biasa untuk menghadapi situasi di mana data disimpan dalam sel yang menggabungkan berbilang nilai. Dengan PowerQuery, kami boleh membahagikan data sedemikian ke dalam baris dengan mudah, menjadikan data lebih mudah untuk diproses dan dianalisis. Ini boleh berlaku jika pengguna tidak memahami peraturan Excel dan secara tidak sengaja memasukkan berbilang data ke dalam sel, atau jika data tidak diformat dengan betul semasa menyalin/menampalkannya daripada sumber lain. Memproses data ini memerlukan langkah tambahan untuk mengekstrak dan menyusun maklumat untuk analisis atau pelaporan. Bagaimana untuk memisahkan data dalam PowerQuery? Transformasi PowerQuery boleh berdasarkan pelbagai faktor berbeza seperti perkataan

Pengecaman niat pertanyaan berdasarkan peningkatan pengetahuan dan model besar yang telah dilatih sebelumnya Pengecaman niat pertanyaan berdasarkan peningkatan pengetahuan dan model besar yang telah dilatih sebelumnya May 19, 2023 pm 02:01 PM

1. Latar Belakang Pengenalan Pendigitalan perusahaan merupakan topik hangat dalam beberapa tahun kebelakangan ini Ia merujuk kepada penggunaan teknologi digital generasi baharu seperti kecerdasan buatan, data besar dan pengkomputeran awan untuk mengubah model perniagaan perusahaan, dengan itu menggalakkan pertumbuhan baharu dalam perniagaan perusahaan. . Pendigitalan perusahaan secara amnya merangkumi pendigitalan operasi perniagaan dan pendigitalan pengurusan perusahaan. Perkongsian ini terutamanya memperkenalkan pendigitalan tahap pengurusan perusahaan. Pendigitalan maklumat, secara ringkasnya, bermaksud membaca, menulis, menyimpan dan menghantar maklumat secara digital. Daripada dokumen kertas sebelum ini kepada dokumen elektronik semasa dan dokumen kerjasama dalam talian, pendigitalan maklumat telah menjadi kebiasaan baharu di pejabat hari ini. Alibaba kini menggunakan Dokumen DingTalk dan Dokumen Yuque untuk kerjasama perniagaan, dan bilangan dokumen dalam talian telah mencecah lebih 20 juta. Di samping itu, banyak syarikat akan secara dalaman

Pemalam Pangkalan Data Pertanyaan React: Strategi untuk Sandaran dan Pemulihan Data Pemalam Pangkalan Data Pertanyaan React: Strategi untuk Sandaran dan Pemulihan Data Sep 28, 2023 pm 11:22 PM

Pemalam pangkalan data ReactQuery: Strategi untuk melaksanakan sandaran dan pemulihan data, contoh kod khusus diperlukan Pengenalan: Dalam pembangunan web moden, sandaran dan pemulihan data adalah tugas yang sangat penting. Terutama apabila menggunakan alat pengurusan negeri seperti ReactQuery, kami perlu memastikan keselamatan dan kebolehpercayaan data. Artikel ini akan memperkenalkan pemalam pangkalan data berdasarkan ReactQuery untuk melaksanakan strategi sandaran dan pemulihan data serta memberikan contoh kod khusus. ReactQu

Pemalam Pangkalan Data Pertanyaan React: Petua untuk Pemampatan Data dan Penyahmampatan Pemalam Pangkalan Data Pertanyaan React: Petua untuk Pemampatan Data dan Penyahmampatan Sep 26, 2023 pm 08:03 PM

Pemalam pangkalan data ReactQuery: Petua untuk melaksanakan pemampatan dan penyahmampatan data, contoh kod khusus diperlukan Pengenalan: Dalam pembangunan aplikasi web moden, memproses sejumlah besar pertanyaan data adalah tugas biasa. ReactQuery ialah perpustakaan berkuasa yang menyediakan cara yang mudah dan intuitif untuk mengurus pertanyaan dan keadaan data. Walaupun ReactQuery sendiri sangat baik, apabila berurusan dengan jumlah data yang besar, kami mungkin perlu mempertimbangkan beberapa helah tambahan untuk meningkatkan prestasi dan mengoptimumkan ruang storan. Artikel ini akan memperkenalkan

CES 2022: Schlage melancarkan Encode Plus Deadbolt dengan fungsi Apple Home Key CES 2022: Schlage melancarkan Encode Plus Deadbolt dengan fungsi Apple Home Key May 23, 2023 pm 06:55 PM

Salah satu ciri Wallet yang diperkenalkan dalam iOS 15 ialah sokongan untuk butang Laman Utama, yang akan membolehkan pengguna menambah kunci digital serasi kunci pintu HomeKit pada apl Wallet pada iPhone dan Apple Watch. Dengan sistem ini, pengguna boleh membuka kunci rumah mereka dengan cepat menggunakan sambungan NFC hanya dengan memegang peranti mereka rapat dengan kunci. Schlage hari ini melancarkan Schlage Encode Plus Smart WiFi Deadbolt, kunci pintar pertama di Amerika Utara untuk menyokong sistem Kunci Rumah Apple. EncodePlus beroperasi sebagai deadbolt tradisional "HomeKit" dan berfungsi melalui Wi-Fi, menghapuskan keperluan untuk

See all articles