PHP による画像処理

WBOY
WBOYオリジナル
2016-06-23 14:05:23945ブラウズ


写真をアップロードする機能があります
毎回アップロードする写真のサイズを 200K 未満に制御するにはどうすればよいですか?
画像のサイズのみを変更できますか?
実際、写真のピクセル、サイズ、鮮明さなどの関係は何ですか。 。


ディスカッションへの返信(解決策)

php.iniにupload_max_filesize = 128Mとあり、サイズを設定できます。また、HTML ページでは、 に値を設定して、サイズを制限することもできます。

非圧縮画像は 1 ピクセルあたり約 3 バイトです。 RGB)、jpg はピクセルあたり約 3 バイトのサイズです。もちろん小さくすることもできますが、歪みは大きくなります
バイト数を減らすには、リサンプリングしてより大きな圧縮率を使用できます。ただし、多くの操作でリソースが消費されるため、一般的にサーバーはこれを行いません

php のサイズを設定するための ini には、upload_max_filesize = 128M があります。また、HTML ページでは、 に値を設定してサイズを制限することもできます
アップロードを許可しないのではなく、アップロードされた写真を許可するのです。小さい

gd ライブラリを使用してサムネイルを生成するだけです

gd ライブラリを使用してサムネイルを生成するだけです
サイズを指定することしかできませんが、200K 未満になるという保証はありません?

はい。サイズはサイズに影響します。

圧縮率を制御します。一部の画像のピクセルが大きすぎる場合、指定された比率に縮小したときに比率が 200k 未満にならない可能性があるため、アップロードされる画像の最大サイズを最適な比率に制御する必要があります。 200k...

現在普及している画像収集機器から判断すると、200K は単なる普通のスタンプです
明瞭度は、既知のサイズのターゲットを表すために使用されるピクセル数を指します。もちろん、必要なピクセル数が多ければ多いほど、より鮮明になります。は

例えば髪の毛の直径は約70~100μmです
1ピクセルで表現するとただの細い線です
100ピクセルで表現すると分かるようになります髪の毛の鱗

例えば、髪の毛の直径は70~100μm程度です
1ピクセルで表現すると、ただの細い線です
100ピクセルで表現すると、髪の鱗を見ることができます

通常、カメラで撮影した写真は、画像閲覧ソフトウェアを使用してコンピューターで開きます。写真の実際のサイズではないでしょうか。
髪を表現するために 100 ピクセルが使用される場合、画像自体のサイズは非常に大きくなりますか?
実は、私が聞きたいのは、ピクセルと画像サイズの関係です。

髪を表現するために 100 ピクセルが使用される場合、画像自体のサイズは非常に大きくなりますか?
それは必ずしも真実ではありません。その写真に髪の毛が 1 本しかない場合、そのピクセルは 100 個しかありません。

まずは解像度の知識を復習しておくことをお勧めします

ピクセルと画像サイズの関係は単位と全体の関係です
ピクセルと画像ファイルサイズ(バイト数)の関係は #2 で述べました
A 1024x500 ピクセルの画像 可逆フルカラー (24 ビット) 画像は 1500k プラスファイルヘッダーで、jpg (非 jpg2000) は約 250k の可逆サイズの約 1/6 です
「おおよそ」と「約」と言いますjpgには複数のレベルの圧縮率があり、各ピクセルのカラー値も影響するため、バイト数は可変です
同じピクセルの「万華鏡」とソリッドカラー画像は両方とも24ビットサンプリングを使用します。この 2 つのロスレス画像形式は同じですが、jpg 形式のバイト数ははるかに小さくなります

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