画像アップロード関連の機能を勉強中です
ローカルに構築したPHP開発環境では、画像をアップロードしてサムネイルを生成するためにPHPのGDライブラリを利用しています。 imagecreatefromjpeg imagejpeg などの関数を使用するのは非常に簡単です。
ただし、無料の php ウェブサイトスペースにアップロードしたとき、jpg 画像形式の生成に関連する imagecreatefromjpeg imagejpeg 関数はサポートされていません。 imagepng imagegif などの他の関数もサポートされています。残念ながら、使いたい機能は無効になっています。
私がアップロードしたプログラムは、写真を一律にjpg形式に変換するもので、サムネイルもjpg形式になります。
ここで、アップロードした写真の元の形式を維持したいと思います。サムネイルは png 形式で均一に生成されます。オンラインで調べましたが、関連するチュートリアルやコードは見つかりませんでした。
実装できるかどうかはわかりません。実装できる場合は、誰かが私にガイダンスを与え、チュートリアルや例を提供してくれることを願っています。 ありがとう!
imagecreatefromjpeg、imagejpeg を imagecreatefrompng、imagepng に変更します
imagecreatefromjpeg、imagejpeg を imagecreatefrompng、imagepng に変更します
それほど単純ではないようですこれが私の方法です。以前に試してみましたが、無駄でした。 imagepng と imagejpeg は、メソッドが異なる 2 つの異なるルーチンです。コードが投稿されました: 以下の画像アドレスをローカル マシン上の画像に置き換えるだけで (ローカル マシンに php 環境がある場合)、jpg 画像のサムネイルを生成でき、コードには詳細な手順が記載されています。
$pic_url='http://127.0.0.1/y/201405021500325711.jpg'; //图片地址$width=200; //生成缩略图的宽$height=100; //生成缩略图的高$newimg = imagecreatetruecolor($width,$height); //创建真彩画布$img = imagecreatefromjpeg($pic_url); //从$pic_url的图片地址创建jpeg图像$imgsize=getimagesize($pic_url); //得到图片地址的 size信息 $imgsize[0]为得到的图片的宽,$imgsize[1]为得到的图片的高 imagecopyresampled($newimg, $img, 0, 0, 0, 0,200,100,$imgsize[0],$imgsize[1]); //这一步是生成缩略图$newurl="final.jpg"; //缩略图名称imagejpeg ($newimg,$newurl,98); //在真彩画布上 画出缩略图 imagedestroy ($newimg); //销毁释放资源imagedestroy ($img); //销毁释放资源
$img = imagecreatefromstring(file_get_contents($pic_url));
モデレーターありがとうございます。必要な方のために、コードを次のように変更してください
$img = imagecreatefromjpeg($pic_url);
$img = imagecreatefromstring(file_get_contents($pic_url));
imagejpeg ($newimg); ,$newurl,98) ;
imagepng ($newimg,$newurl) に変更されました。