ホームページ  >  記事  >  バックエンド開発  >  Webサイト空間では、jpg画像形式を生成するGDライブラリの関連機能が無効になっていますが、GDライブラリやその他の機能は一律にpng形式の画像に変換することはできませんか?

Webサイト空間では、jpg画像形式を生成するGDライブラリの関連機能が無効になっていますが、GDライブラリやその他の機能は一律にpng形式の画像に変換することはできませんか?

WBOY
WBOYオリジナル
2016-06-23 13:57:531320ブラウズ

画像アップロード関連の機能を勉強中です
ローカルに構築した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); //销毁释放资源


上記の imagecreatefromjpeg と imagejpeg を imagecreatefrompng と imagepng に変更すると、非常に重大なエラーが報告されます。png 画像は生成できますが、0 バイトの無効な画像です。

$pic_url='http://127.0.0.1/y/201405021500325711.jpg'; //画像アドレス

$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) に変更されました。

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