SNS投稿・メール添付向けに画像を軽くする実例:容量・見た目・位置情報をPhotrimで検証

著者: Photrim編集部 公開日: 更新日:

旅行写真3枚(2.94MB分)をPhotrimの標準で圧縮すると約8割減。メールに入る枚数の算出、位置情報などのExifが圧縮後に残らない確認、高圧縮で出る色むらの実例、SNS・メール別の品質の選び方と手順を紹介します。

検証方法: スマートフォンで撮影した写真のようにExif(メーカー・撮影日時・GPS座標・向き)を持たせた画像4枚をApp\Domain\ImageCompression\Service\CompressServiceへ実際に渡し、高画質・標準・高圧縮それぞれの出力ファイルサイズ・PSNR・Exifの有無・向きを計測した実測値です(backend/scripts/measure-sns-email-images.php、詳細は本文「測定条件」参照)。

この記事で分かること

SNSに写真を投稿したい、メールに写真を何枚か添付したい。そんなときに、画像をどのくらい軽くできるのか、見た目はどう変わるのか、圧縮品質はどれを選べばよいのかを、Photrimで実際に圧縮した数値で確認します。あわせて、スマートフォンで撮った写真に含まれがちな位置情報が、圧縮後の画像に残るのかも検証しました。

  • 旅行写真3枚とスクリーンショット1枚をメールに添付する場面の、容量の変化
  • 添付容量の上限ごとに、写真が何枚入るかの算出
  • 位置情報などのExif情報が、圧縮後の画像に残るかどうか
  • SNS投稿・メール添付それぞれの圧縮品質の選び方と、Photrimでの操作手順

検証に使った画像

実在の写真は権利関係の確認が難しいため、このプロジェクトで生成した画像を使いました(第三者の権利を含みません)。スマートフォンで撮った写真の状況を再現するため、JPEGにはExif情報(メーカー名・機種・撮影日時・GPS座標・向き)を自前で埋め込んでいます。座標などの値はすべてサンプルで、実在の個人の情報ではありません。乱数シードを固定しているので、誰でも同じ画像を再生成できます。

想定する用途 ファイル 形式 大きさ 元の容量
旅行の写真(1) trip-1.jpg JPEG 2400×1800px 1,248.9KB
旅行の写真(2) trip-2.jpg JPEG 2400×1800px 954.5KB
旅行の写真(3) trip-3.jpg JPEG 2000×1500px 795.1KB
画面のスクリーンショット trip-screenshot.png PNG 1600×1000px 9.0KB

注意: これらは実写真ではなく、図形で描いた画像です。実際の写真は色の変化がもっと複雑なため、削減率や画質は変わります。この記事の数値は、同じ条件で圧縮品質を比べるための目安です。

各画像をPhotrimの圧縮処理(App\Domain\ImageCompression\Service\CompressService)へ、高画質・標準・高圧縮のそれぞれで直接渡して計測しました。画質は、アップロード元と比べたPSNR(ピーク信号対雑音比、数値が大きいほど元に近い)で表します。

結果1:画像ごとの圧縮結果

画像 圧縮前 高画質 標準 高圧縮
旅行の写真(1) 1,248.9KB 455.1KB(63.6%削減、50.82dB) 268.0KB(78.5%削減、45.56dB) 193.1KB(84.5%削減、39.49dB)
旅行の写真(2) 954.5KB 347.9KB(63.6%削減、51.13dB) 190.7KB(80.0%削減、46.44dB) 127.5KB(86.6%削減、40.51dB)
旅行の写真(3) 795.1KB 412.3KB(48.1%削減、37.87dB) 186.7KB(76.5%削減、37.34dB) 135.6KB(82.9%削減、35.61dB)
スクリーンショット(PNG) 9.0KB 9.0KB(1.0%削減) 9.0KB(0.2%削減) 31.8KB(約3.5倍に増加)

写真は、高画質で約5〜6割、標準で約8割(76.5〜80.0%)、高圧縮で8割台(82.9〜86.6%)小さくなりました。画像の内容によってPSNRには差があり、写真(3)はすべての設定で40dBを下回りました。

スクリーンショット(PNG)は、3つの設定すべてで画素がアップロード元と完全に一致しました。ただし、元の容量が小さいためほとんど縮まず、高圧縮を選ぶと約3.5倍に増えました。PNGは可逆圧縮のため、圧縮の「かけ方」が品質ではなく強さに対応しており、高画質(圧縮レベル8)が最も強く、高圧縮(レベル2)が最も弱くかかる仕組みのためです。詳しくは画像圧縮の仕組みをご覧ください。

結果2:メールに何枚添付できるか

写真3枚とスクリーンショット1枚の合計は、圧縮前の2.94MBでした。

圧縮品質 合計 削減量
(圧縮前) 2.94MB -
高画質 1.20MB 1.74MB(59.3%削減)
標準 0.64MB 2.30MB(78.2%削減)
高圧縮 0.48MB 2.46MB(83.8%削減)

次に、写真(JPEG)3枚の平均サイズ(圧縮前0.98MB、高画質0.40MB、標準0.21MB、高圧縮0.15MB)から、添付容量の上限ごとに何枚入るかを算出しました。

添付容量の上限(例) 圧縮前 高画質 標準 高圧縮
5MB 5枚 12枚 23枚 33枚
10MB 10枚 25枚 47枚 67枚
20MB 20枚 50枚 95枚 134枚

この表の上限(5・10・20MB)は算出のための例で、特定のメールサービスの仕様を示すものではありません。お使いのメールサービスや送信先の上限は、公式のヘルプで確認してください。また、メールの添付ファイルは送信時にエンコードされ、実際の送信容量は元のファイルより大きくなるのが一般的です。上限ぎりぎりにせず、余裕を持たせるのがおすすめです。

結果3:位置情報などのExifは圧縮後に残らない

スマートフォンで撮影した写真には、撮影日時・機種・位置情報(GPS座標)といったExif情報が含まれることがあります。SNSにそのまま投稿すると、意図せず位置情報が伝わるおそれがあります。

そこで、メーカー・機種・撮影日時・GPS座標を埋め込んだ写真(trip-1.jpg)をPhotrimで圧縮し、出力にExifが残るかを調べました。ファイルの内部を先頭から読み、Exif情報を格納する部分(APP1セグメント)があるかも確認しています。

状態 Exif情報の格納部分 メーカー GPS座標
圧縮前 あり あり(SampleCam) あり
高画質で圧縮後 なし なし なし
標準で圧縮後 なし なし なし
高圧縮で圧縮後 なし なし なし

3つの設定すべてで、このサンプルのExif情報(メーカー・機種・撮影日時・GPS座標・向き)は圧縮後の画像に残りませんでした。

もう1点、向きも確認しました。横長の画素(1200×800px)に「90度回転して表示する」向き(Orientation=6)を持たせた写真を圧縮すると、出力は縦長の800×1200pxになり、向きの情報も残りませんでした。画像の向きは正しく補正されたうえで出力されます。

ただし、この検証が示すのはこのサンプルのExif情報に限った結果です。XMPなど、ほかの形式のメタデータや、実際のカメラ・アプリが付ける独自の情報までは検証していません。大切な写真を公開する前には、保存した画像のプロパティ(ファイルの詳細情報)で、位置情報が残っていないかをご自身でも確認してください。

結果4:見た目の差は「なめらかな部分」に出る

数値だけでは見た目の差が分かりにくいため、旅行の写真(1)の山の頂上付近を3倍に拡大して比べました。拡大には最近傍法(画素をそのまま大きくする方法)を使い、表示用の画像自体は可逆のPNGで保存しているので、ここに映る差はすべて圧縮によるものです。

アップロード元(圧縮前)

旅行の写真の山の頂上付近を3倍に拡大した圧縮前の画像。空に細かな粒状のノイズが見える

標準で圧縮

標準で圧縮した旅行の写真を同じ場所で3倍に拡大した画像。粒状のノイズは薄れるが、空はなめらかで自然に見える

高圧縮で圧縮

高圧縮で圧縮した旅行の写真を同じ場所で3倍に拡大した画像。空に四角いブロック状の色むらが見え、山の頂上のまわりに色のにじみが出ている

拡大して見ると、標準は粒状のノイズが薄れるものの、空はなめらかなままでした。一方、高圧縮では空の部分に四角いブロック状の色むらが見え、山の頂上のまわりにも色のにじみが出ました。写真全体を縮小して見る分には気づきにくい程度ですが、グラデーションの空や肌のようななめらかな部分が大きい写真では、高圧縮の影響が目立ちやすくなります。

SNS投稿とメール添付の選び方

以上の実測にもとづく、圧縮品質の選び方です。

場面 形式 おすすめの品質 根拠(この記事の実測)
SNSに写真を投稿する JPEG 標準 約8割減(写真(1)は1,248.9KB→268.0KB)で、PSNRは45〜46dB台(写真(1)(2))。位置情報などのExifも残らない
メールに写真を添付する(容量に余裕がある) JPEG 標準 3枚+スクリーンショットで2.94MB→0.64MB
メールに写真を添付する(上限が厳しい) JPEG 高圧縮 1枚あたり約0.15MBまで小さくなる。ただし空などに色むらが出る
スクリーンショットを添付する PNGのまま 高画質 高画質9.0KBに対し、高圧縮は31.8KB(約3.5倍)

SNSについて: 投稿先のサービスが、アップロードされた画像をさらに加工(リサイズや再圧縮など)する場合があります。その仕様は各サービスの公式ヘルプで確認してください。この記事では、特定のSNSの処理内容や、固定の推奨サイズを示していません。元の高画質な画像は、手元に残しておくのがおすすめです。

形式の使い分けはJPEGとは、用途別の考え方は利用シーン別 画像圧縮実践ガイドもあわせてご覧ください。

Photrimでの操作手順と確認ポイント

  1. 圧縮前に、必要な大きさを確認しておきます。Photrimは圧縮だけを行い、画像の幅・高さを変える機能はありません。投稿先やメールの相手に必要な大きさより大幅に大きい画像は、ほかのツールで先にリサイズしてください(この記事の数値はリサイズを含みません)。
  2. Photrimのトップページで、画像をドラッグ&ドロップするか、「ファイルを選択」から画像を選びます。1回に最大20枚まで選べます。
  3. 「圧縮品質」で、高画質・標準・高圧縮のいずれかを選びます。複数枚を選んだ場合、品質は全ファイル共通です。写真(JPEG)とスクリーンショット(PNG)でおすすめの品質が異なるため、PNGは別にまとめて圧縮するのがおすすめです。
  4. 「圧縮開始」を押します。
  5. 圧縮が終わったら、削減率とプレビューを確認し、「圧縮した画像をダウンロード」(複数枚のときは「ZIPでまとめてダウンロード」)で保存します。
  6. 保存した画像を確認します。(a) メールに添付する場合は、圧縮後の合計サイズが相手の上限に余裕を持って収まっているか。(b) 拡大して、空のようななめらかな部分に色むらが出ていないか。(c) 向きが正しいか。(d) 位置情報が残っていないか(画像のプロパティで確認)。問題があれば、一段階品質を上げてやり直します。

この結果からわかること

  • 写真は標準で約8割小さくなり、メールに入る枚数は圧縮前の約4.7倍になりました(算出)。
  • このサンプルのExif情報(位置情報を含む)は、すべての設定で圧縮後に残りませんでした。ただし、実際の写真のすべてのメタデータを保証するものではありません。
  • 高圧縮は、空のようななめらかな部分に色むらが出やすい一方、容量の上限が厳しい場面では有効です。
  • PNGは高画質を選ぶのが基本で、高圧縮を選ぶと約3.5倍に増えることがあります。
  • 数値はこの記事で生成した画像の結果です。実際の写真では結果が変わるため、ご自身の画像で確認してください。

専門用語の補足

  • Exif: 写真ファイルに付随する情報(撮影日時・機種・位置情報など)。スマートフォンやカメラが自動で記録します。
  • PSNR(ピーク信号対雑音比): 圧縮後の画像が元の画像にどれだけ近いかを表す客観的な画質指標。単位はdB(デシベル)で、数値が大きいほど劣化が小さいことを表します。ここでは、アップロード元と圧縮後の画像を同じ大きさ(幅400px)に縮小してから、画素ごとの色の差を比べて算出しました。

測定条件

  • 実行日: 2026年10月2日
  • 対象コミット: fffc028(この記事の追加作業の直前時点)
  • 実行環境: PHP 8.3.35、Laravel 10.50.2、GD 2.3.3
  • 検証画像の生成スクリプト: backend/scripts/generate-sns-email-images.php(リポジトリに同梱、固定された乱数シードから同じ画像を再生成し、Exifを埋め込みます)
  • 計測スクリプト: backend/scripts/measure-sns-email-images.php(ファイルサイズ・PSNR・Exifの有無・向き・メールの合計と枚数の算出をすべてこのスクリプトで行っており、本文中の数値を手作業で創作していません)

実際に圧縮してみる

ご自身の写真で、どのくらい軽くなるかは、画像を今すぐ圧縮するから実際に試してみるのが一番確実です。標準と高圧縮を切り替えて、見た目と容量の変化を比べてみてください。

関連記事