ホームページ バックエンド開発 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 がリソース タイプの画像データです ここで問題が発生します。上記のコードに注目してください。file_get_contents によって返される型は string であり、base64_encode のパラメータ型でもあります。 リソースを文字列型に変換する方法。 勉強した結果、PHPには出力バッファの内容を文字列の形式で返す
string ob_get_contents ( void )
ログイン後にコピー
という関数があることが分かりました。
したがって、アイデアは、リソース画像をバッファーに出力し、オブジェクトを使用してそのコンテンツを取得することです。コードは以下の通りです
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 は出力バッファであり、PHP において非常に重要で便利なツールですphp.net を参照してください

上記では、PHP で写真を切り取って mysql に保存する方法を、関連する内容も含めて紹介しています。PHP チュートリアルに興味のある友人に役立つことを願っています。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

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 データベース プラグインを使用できます。 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 変換は、単語などのさまざまな要素に基づいて行うことができます。

知識強化と事前トレーニングされた大規模モデルに基づくクエリ意図認識 知識強化と事前トレーニングされた大規模モデルに基づくクエリ意図認識 May 19, 2023 pm 02:01 PM

1. 背景 はじめに 近年、エンタープライズデジタル化が注目されており、人工知能、ビッグデータ、クラウドコンピューティングなどの新世代デジタル技術を活用して企業のビジネスモデルを変革し、企業ビジネスの新たな成長を促進することを指します。 。企業のデジタル化には、通常、業務運営のデジタル化と企業管理のデジタル化が含まれます。この共有化では主に企業管理レベルのデジタル化を導入します。情報のデジタル化とは、簡単に言えば、デジタル的な方法で情報を読み取り、書き込み、保存し、送信することを意味します。以前の紙の文書から現在の電子文書やオンラインで共同作業を行う文書に至るまで、情報のデジタル化は今日のオフィスの新たな常態となっています。現在、アリババはビジネス コラボレーションに DingTalk ドキュメントと Yuque ドキュメントを使用しており、オンライン ドキュメントの数は 2,000 万件以上に達しています。さらに、多くの企業は社内で

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 自体はすでに非常に優れていますが、大量のデータを扱う場合は、パフォーマンスを向上させ、ストレージ領域を最適化するために、いくつかの追加のトリックを考慮する必要がある場合があります。この記事で紹介するのは

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

iOS 15で導入されたWallet機能の1つはホームボタンのサポートで、これによりユーザーはHomeKitドアロックと互換性のあるデジタルキーをiPhoneやApple WatchのWalletアプリに追加できるようになります。このシステムを使用すると、ユーザーはデバイスをロックに近づけるだけで、NFC 接続を使用して家のロックをすばやく解除できます。 Schlage は本日、Apple の Home Key システムをサポートする北米初のスマート ロックである Schlage Encode Plus Smart WiFi Deadbolt を発売しました。 EncodePlus は従来の「HomeKit」デッドボルトとして動作し、Wi-Fi 経由で動作するため、別途の必要がなくなります。

See all articles