首頁 後端開發 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);  
登入後複製
如果不需要更改圖片大小而直接存入mysql,可以如下簡單實現
$tempFile = $picFile["tmp_name"];  
$picData = base64_encode($picData);  

$query = "INSERT INTO image  
   (imgid, image, imgtype) 
   values( 
       null, 
       '$picData', 
       '$picType' 
    );"; 
$link->query($query);
登入後複製
但如果要更改圖片大小並以字符流的形式獲得圖片數據,則需要一點小技巧:
先完成裁切圖片,取得圖片物件
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);  
}
登入後複製
這一步驟以後newPicTemp 是resource 型的圖片資料了,問題來了,觀察上方程式碼,file_get_contents 回傳的型別是string,也是base64_encode 的參數型別。 如何把 resource 轉為 string 類型呢。 經過學習發現 PHP 有個這個函數
string ob_get_contents ( void )
登入後複製
以字串的形式傳回輸出緩衝區中的內容。
因此,想法就是把 resource 圖片輸出到緩衝區,然後用一個物件取得其內容。代碼如下
ob_start(); //开启输出缓冲区  
imagejpeg($newPicTemp); //这个函数可以显示出图片,同时也是把数据输出  
$imgContent = ob_get_contents(); //获取字符流  
ob_end_clean();  //关闭并清除缓冲区  

$picData = base64_encode($imgContent); //不要忘记转码
登入後複製
這樣一來,就獲得更改大小後的圖片字符流了,可以存入mysql
最後銷毀臨時數據
imagedestroy($src);  
imagedestroy($newPicTemp);
登入後複製
如果需要讀取並顯示圖片,可以使用如下代碼
$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;  
登入後複製
可以看出幾個關鍵函數都含有ob 標識。 ob 即 output buffer,是 PHP 非常關鍵且有用的工具參考 php.net

以上就介紹了PHP裁剪圖片並存入mysql,包括了方面的內容,希望對PHP教程有興趣的朋友有所幫助。

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

<🎜>:泡泡膠模擬器無窮大 - 如何獲取和使用皇家鑰匙
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系統,解釋
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆樹的耳語 - 如何解鎖抓鉤
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1664
14
CakePHP 教程
1423
52
Laravel 教程
1321
25
PHP教程
1269
29
C# 教程
1249
24
如何透過拖曳放在Power Query中重新排序 如何透過拖曳放在Power Query中重新排序 Mar 14, 2024 am 10:55 AM

在這篇文章中,我們將向你們展示如何透過拖放在PowerQuery中重新排序多個欄位。通常,從各種來源匯入資料時,列可能不是所需的順序。重新排序列不僅允許您按照符合您的分析或報告需求的邏輯順序排列它們,還可以提高資料的可讀性,並加快過濾、排序和執行計算等任務。如何在Excel中重新排列多個列?在Excel中,重新排列列的方法有多種。您可以簡單地選擇列標題,然後將其拖曳到所需位置。但是,當處理包含許多列的大表時,這種方法可能會變得繁瑣。為了更有效率地重新排列列,您可以使用增強查詢編輯器。透過增強查詢編

React Query 資料庫外掛程式:實作資料匯入和匯出的方法 React Query 資料庫外掛程式:實作資料匯入和匯出的方法 Sep 26, 2023 pm 05:37 PM

ReactQuery資料庫外掛:實作資料匯入和匯出的方法,需要具體程式碼範例隨著ReactQuery在前端開發中的廣泛應用,越來越多的開發者開始使用它來管理資料。而在實際開發中,我們經常需要將資料匯出到本機檔案或從本機檔案匯入資料到資料庫。為了更方便地實現這些功能,可以使用ReactQuery資料庫插件。 ReactQuery資料庫外掛提供了一系列方

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

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

如何使用Power Query將資料拆分為NTFS 如何使用Power Query將資料拆分為NTFS Mar 15, 2024 am 11:00 AM

本文將介紹如何使用PowerQuery將資料進行行拆分。從其他系統或來源匯出資料時,常常會遇到資料儲存在儲存格中組合多個值的情況。透過PowerQuery,我們可以輕鬆將這樣的資料拆分成行,讓資料更易於處理和分析。若使用者不了解Excel的規則並意外將多個資料輸入到一個儲存格,或從其他來源複製/貼上資料時未正確格式化,就會發生這種情況。要處理這些數據,需要額外的步驟來提取和整理信息,以便進行分析或報告。如何在PowerQuery中拆分資料? PowerQuery轉換可以根據各種不同因素(例如字

基於知識增強和預訓練大模型的 Query 意圖識別 基於知識增強和預訓練大模型的 Query 意圖識別 May 19, 2023 pm 02:01 PM

一、背景介紹企業數位化是近年來很熱的一個話題,它是指運用人工智慧、大數據、雲端運算等新一代數位技術,改變企業的業務模式,從而推動企業業務產生新的成長。企業數位化一般來說包括業務經營的數位化和企業管理的數位化。本次分享主要介紹企業管理層面的數位化。資訊數位化,簡單來說,就是把訊息用數位化的方式進行讀寫、儲存和傳遞。從以前的紙本文檔到現在的電子文檔以及線上協同文檔,資訊數位化已經變成了現在辦公室的新常態。目前阿里使用釘釘文件和語雀文件進行業務協同,線上文件數量已經達到了2000萬以上。另外很多企業內部會

CES 2022:Schlage 推出支援 Apple Home Key 功能的 Encode Plus Deadbolt CES 2022:Schlage 推出支援 Apple Home Key 功能的 Encode Plus Deadbolt May 23, 2023 pm 06:55 PM

iOS15中引入的Wallet功能之一是對Home鍵的支持,這將允許用戶將相容HomeKit門鎖的數位鑰匙添加到iPhone和AppleWatch上的Wallet應用程式中。借助該系統,用戶只需將設備靠近鎖,即可利用NFC連接快速解鎖他們的家。 Schlage今天推出了SchlageEncodePlusSmartWiFiDeadbolt,這是北美第一款支援蘋果家庭鑰匙系統的智慧鎖。 EncodePlus作為傳統的「HomeKit」鎖栓運行,透過Wi-Fi工作,無需單獨的

React Query 資料庫外掛程式:實作資料備份與還原的策略 React Query 資料庫外掛程式:實作資料備份與還原的策略 Sep 28, 2023 pm 11:22 PM

ReactQuery資料庫外掛:實現資料備份和還原的策略,需要具體程式碼範例引言:在現代的Web開發中,資料的備份和還原是非常重要的一項任務。特別是在使用ReactQuery這樣的狀態管理工具時,我們需要確保資料的安全性和可靠性。本文將介紹一種基於ReactQuery的資料庫插件,用於實現資料備份和還原的策略,並提供具體的程式碼範例。 ReactQu

React Query 資料庫外掛程式:實現資料壓縮和解壓縮的技巧 React Query 資料庫外掛程式:實現資料壓縮和解壓縮的技巧 Sep 26, 2023 pm 08:03 PM

ReactQuery資料庫外掛:實現資料壓縮和解壓縮的技巧,需要具體程式碼範例引言:在現代Web應用開發中,處理大量的資料查詢是一項常見的任務。 ReactQuery是一個強大的函式庫,提供了簡單、直覺的方式來管理資料查詢和狀態。儘管ReactQuery本身已經非常優秀,但當處理大量資料時,我們可能需要考慮一些額外的技巧來提高效能和優化儲存空間。本文將介紹

See all articles