MacでPNGとJPEGを相互変換する方法|標準機能・sipsで無料&一括変換
カテゴリ: Mac
タグ:
目次
Macで画像を扱っていると、
- PNG画像をJPEGに変換したい
- JPEG画像をPNGに変換したい
- 複数の画像をまとめて変換したい
- 追加アプリを入れずに変換したい
- PNGとJPEGのどちらを使えばよいのか分からない
といった場面があります。
macOSでは、標準の「プレビュー」アプリやsipsコマンドを使って、PNGとJPEGを相互に変換できます。
追加の画像変換ソフトをインストールしなくても、1枚だけの変換から複数ファイルの一括変換まで対応できます。
この記事では、単に変換方法を紹介するだけでなく、PNGとJPEGの違い、透過画像をJPEGに変換するときの注意点、JPEGをPNGに変換した場合の画質についても詳しく解説します。
結論
数枚の画像を変換するだけなら、Mac標準の「プレビュー」を使う方法が簡単です。
PNGからJPEGへ変換する場合は、
PNG画像をプレビューで開く
↓
ファイル
↓
書き出す
↓
フォーマット「JPEG」
↓
保存
JPEGからPNGへ変換する場合は、
JPEG画像をプレビューで開く
↓
ファイル
↓
書き出す
↓
フォーマット「PNG」
↓
保存
という流れです。
複数の画像をまとめて処理したい場合は、macOS標準のsipsコマンドが便利です。
PNGからJPEGへ変換する基本形は、
sips -s format jpeg input.png --out output.jpg
JPEGからPNGへ変換する基本形は、
sips -s format png input.jpg --out output.png
です。
ただし、PNGとJPEGは単に拡張子が違うだけではありません。
特に重要なのが、
- PNGは透過情報を持てる
- JPEGは透過情報を持てない
- JPEGは非可逆圧縮
- JPEGをPNGへ変換しても失われた画質は元に戻らない
という違いです。
用途によって、変換するべきかどうかも判断する必要があります。
PNGとJPEGの違い
PNGとJPEGは、どちらも広く使われている画像形式ですが、得意な用途が異なります。
おおまかには次のように考えると分かりやすいです。
| 項目 | PNG | JPEG |
|---|---|---|
| 主な用途 | ロゴ、図、UI素材、スクリーンショット | 写真、Web掲載用写真 |
| 圧縮方式 | 可逆圧縮 | 非可逆圧縮 |
| 透過 | 対応 | 非対応 |
| 写真のファイルサイズ | 大きくなりやすい | 小さくしやすい |
| 文字・線画 | 得意 | 圧縮ノイズが出る場合がある |
| 再保存による劣化 | 基本的に少ない | 再圧縮で劣化する可能性がある |
PNGが向いている画像
PNGは、例えば次のような画像に向いています。
- ロゴ
- アイコン
- イラスト
- UI素材
- スクリーンショット
- 透明な背景を持つ画像
- 文字や線をくっきり残したい画像
PNGは可逆圧縮なので、画像データを保ったまま圧縮できます。
その代わり、写真のように色数が多く複雑な画像では、JPEGよりファイルサイズが大きくなることがあります。
JPEGが向いている画像
JPEGは、例えば次のような画像に向いています。
- 写真
- Webサイト掲載用の写真
- メールで送りたい写真
- ファイル容量を抑えたい画像
JPEGは非可逆圧縮を使うため、画質と引き換えにファイルサイズを小さくできます。
写真のような階調の多い画像では効率よく圧縮できますが、文字や細い線のある画像では圧縮によるにじみやノイズが目立つ場合があります。
方法1:Macの「プレビュー」でPNGをJPEGに変換する
Macで1枚、または数枚のPNGをJPEGへ変換するだけなら「プレビュー」が簡単です。
Appleのプレビューアプリでは、画像をJPEGやPNGなど別のファイル形式へ書き出せます。
手順
変換したいPNG画像をFinderでダブルクリックし、「プレビュー」で開きます。
もし別のアプリで開いてしまう場合は、ファイルを右クリックして、
このアプリケーションで開く
→ プレビュー
を選択します。
次に、画面上部のメニューから、
ファイル
→ 書き出す
を選択します。
「フォーマット」の項目から、
JPEG
を選びます。
JPEGを選択すると、macOSのバージョンによっては「品質」を調整できます。
保存するファイル名と場所を指定し、
保存
をクリックします。
これでPNGからJPEGへの変換は完了です。
JPEGの品質はどのくらいにすればよい?
JPEGでは、品質を高くすると画像の劣化を抑えられますが、その分ファイルサイズが大きくなります。
反対に品質を下げるとファイルサイズは小さくなりますが、圧縮による画質劣化が目立ちやすくなります。
用途の目安は次の通りです。
写真を保存したい
画質を優先するなら、高めの品質にします。
Webサイトに掲載したい
ファイルサイズも重要になるため、実際の表示を確認しながら品質を調整します。
メールなどで送信したい
容量制限がある場合は、品質を下げるか、画像サイズ自体を小さくする方法もあります。
画質を下げる前に、画像の縦横サイズが必要以上に大きくないか確認することも重要です。
画像サイズの変更については、別記事の「Macで画像を一括リサイズする方法|sipsで任意サイズに無料変換」で詳しく解説しています。
方法2:Macの「プレビュー」でJPEGをPNGに変換する
JPEGからPNGへの変換も、基本的な操作は同じです。
JPEG画像をプレビューで開き、
ファイル
→ 書き出す
を選択します。
フォーマットから、
PNG
を選び、
保存
をクリックします。
これでJPEG画像をPNGとして保存できます。
JPEGをPNGへ変換すると画質が良くなる?
ここは誤解しやすいポイントです。
JPEGをPNGへ変換しても、JPEGで失われた画質が元に戻るわけではありません。
JPEGは非可逆圧縮なので、JPEGとして保存された時点ですでに一部の画像情報が失われています。
そのJPEGをPNGに変換すると、
JPEGとして現在存在している画像
↓
PNGとして保存
されるだけです。
つまり、
JPEG → PNG
に変換しても、
元画像の画質へ復元
されるわけではありません。
PNGに変換する意味があるのは、
- 利用するシステムがPNG指定
- これ以上JPEGの再圧縮を繰り返したくない
- 画像編集後の保存形式をPNGにしたい
- ファイル形式を統一したい
といった場合です。
PNGをJPEGへ変換するときの重要な注意点:透過
PNGからJPEGへ変換するときに、特に注意したいのが**透明部分(アルファチャンネル)**です。
PNGは透明な背景を持つことができます。
例えば、
- ロゴ
- LINEスタンプ用素材
- Webサイト用アイコン
- 切り抜いた人物や商品
- 背景透過イラスト
などでは、透明部分が使われていることがあります。
JPEGは透明部分を保持できません。
そのため、透過PNGをJPEGへ変換すると、透明情報は失われます。
例えば、
背景透明のロゴ.png
を、
背景透明のロゴ.jpg
へ変換しても、JPEGでは「背景透明」の状態を維持できません。
透明部分がある画像は、JPEGへ変換する前に、
- 本当にJPEGへ変換する必要があるか
- 背景色をどうするか
- PNGのまま利用できないか
を確認してください。
方法3:sipsでPNGをJPEGへ変換する
画像を繰り返し変換したり、自動処理したりする場合は、macOS標準のsipsコマンドが便利です。
sipsは、
Scriptable Image Processing System
の略で、macOSから画像処理を行うためのコマンドです。
追加ソフトをインストールする必要はありません。
PNGからJPEGへ変換する基本コマンド
例えば、
input.png
を、
output.jpg
へ変換する場合は、
sips -s format jpeg input.png --out output.jpg
を実行します。
変換後も、
input.png
は残り、新しく、
output.jpg
が作成されます。
元画像を上書きしないため、変換処理では--outを指定して別ファイルとして保存しておくと安心です。
方法4:sipsでJPEGをPNGへ変換する
JPEGからPNGへ変換する場合は、フォーマットにpngを指定します。
sips -s format png input.jpg --out output.png
例えば、
photo.jpg
を、
photo.png
へ変換するなら、
sips -s format png photo.jpg --out photo.png
です。
JPGとJPEGは違う?
ファイルによって、
.jpg
と、
.jpeg
の2種類を見かけることがあります。
一般的には、どちらもJPEG画像として扱われます。
そのため、一括変換を行う場合は、
*.jpg
だけを対象にすると、
*.jpeg
のファイルを処理できないことがあります。
自分のフォルダ内にどちらの拡張子があるか確認してから処理してください。
複数のPNGをJPEGへ一括変換する
PNG画像が大量にある場合、1枚ずつ変換するのは大変です。
ターミナルでは、forを使って複数のPNGをまとめてJPEGへ変換できます。
for file in *.png; do
sips -s format jpeg "$file" --out "${file%.*}.jpg"
done
例えば、
001.png
002.png
003.png
がある場合、実行後は、
001.png
002.png
003.png
001.jpg
002.jpg
003.jpg
となります。
元のPNGファイルは残ります。
複数のJPEGをPNGへ一括変換する
JPEGをPNGへ一括変換する場合は、
for file in *.jpg; do
sips -s format png "$file" --out "${file%.*}.png"
done
とします。
例えば、
photo01.jpg
photo02.jpg
photo03.jpg
がある場合、
photo01.png
photo02.png
photo03.png
が作成されます。
元のJPEGもそのまま残ります。
JPEGとJPGの両方をまとめてPNGへ変換する
.jpgと.jpegが混在している場合は、zshのパターンを使って処理できます。
for file in *.(jpg|jpeg)(N); do
sips -s format png "$file" --out "${file%.*}.png"
done
macOSの標準シェルであるzshを使用している場合に利用できる書き方です。
より単純に処理したい場合は、.jpgと.jpegを分けて実行しても構いません。
for file in *.jpg; do
sips -s format png "$file" --out "${file%.*}.png"
done
for file in *.jpeg; do
sips -s format png "$file" --out "${file%.*}.png"
done
JPEGの品質を指定して変換する
PNGからJPEGへ変換するときは、JPEGの品質を指定することもできます。
例えば品質を90にする場合は、
sips -s format jpeg -s formatOptions 90 input.png --out output.jpg
とします。
複数のPNGを品質90で一括変換する場合は、
for file in *.png; do
sips -s format jpeg -s formatOptions 90 "$file" --out "${file%.*}.jpg"
done
とできます。
品質を高くするほど画質を保ちやすくなりますが、ファイルサイズも大きくなる傾向があります。
反対に品質を下げるとファイルサイズは小さくなりますが、画像によっては圧縮ノイズが目立ちます。
使用しているmacOSで利用できるsipsのオプションは、
sips --help
または、
man sips
で確認できます。
変換と同時に画像サイズを変更する
sipsでは、ファイル形式の変換とリサイズを同時に行うこともできます。
例えばPNGをJPEGへ変換しながら、縦横比を維持して長辺を1200px以内にする場合は、
sips -s format jpeg -Z 1200 input.png --out output.jpg
とします。
Webサイト掲載用画像など、
PNG
↓
JPEG
↓
画像サイズ縮小
を一度に行いたい場合に便利です。
ただし、画像形式の変換とリサイズを同時に行うと、何が原因で画質が変化したのか分かりにくくなることがあります。
初めて行う場合は、
- まずファイル形式だけ変換する
- 出力結果を確認する
- 必要ならリサイズする
という順番で試してから、一括処理にまとめることをおすすめします。
フォルダ内の画像を一括変換する手順
例えばデスクトップに、
images
というフォルダを作り、その中にPNG画像を入れている場合は、
cd ~/Desktop/images
でフォルダへ移動します。
現在いるフォルダは、
pwd
で確認できます。
ファイル一覧は、
ls
で確認できます。
変換対象のファイルが存在することを確認してから、
for file in *.png; do
sips -s format jpeg "$file" --out "${file%.*}.jpg"
done
を実行します。
大量の画像を処理する場合は、別の作業用フォルダへコピーしてから実行すると安全です。
ファイル名に空白や日本語が入っていても大丈夫?
シェルスクリプトでは、ファイル名を、
"$file"
のようにダブルクォートで囲むことが重要です。
例えば、
旅行 写真 01.png
のように空白が入っている場合でも、
sips -s format jpeg "$file" --out "${file%.*}.jpg"
のように書いていれば、1つのファイル名として扱いやすくなります。
一括処理のサンプルで"$file"としているのは、このためです。
変換後のファイル名を分かりやすくしたい場合
元画像と変換後画像を明確に区別したい場合は、接頭辞を付けることもできます。
PNGからJPEGへ変換して、
jpeg_元ファイル名.jpg
とする場合は、
for file in *.png; do
name="${file%.*}"
sips -s format jpeg "$file" --out "jpeg_${name}.jpg"
done
とします。
例えば、
sample.png
から、
jpeg_sample.jpg
が作成されます。
変換対象と変換済みファイルが同じフォルダにある場合は、このような命名ルールを決めておくと管理しやすくなります。
PNGからJPEGへ変換するとファイルサイズは必ず小さくなる?
必ず小さくなるとは限りません。
一般的に、写真のような色数が多い画像ではJPEGの方が小さくなりやすいですが、画像の内容やJPEGの品質設定によって結果は変わります。
例えば、
- 写真
- グラデーションの多い画像
ではJPEGが向いています。
一方、
- ロゴ
- 文字中心の画像
- 単色の図
- UIのスクリーンショット
などは、PNGのままの方が見た目を保ちやすい場合があります。
単純に、
PNGは重いからJPEGへ変換する
と考えるのではなく、画像の用途で判断することが大切です。
JPEGをPNGにするとファイルサイズが大きくなることがある
JPEG写真をPNGへ変換すると、ファイルサイズが大幅に増える場合があります。
これはPNGとJPEGで圧縮方式が異なるためです。
写真をJPEGからPNGへ変換しても、元のJPEGで失われた情報は戻りません。
その一方で、PNGとして保存した結果、ファイルサイズだけが大きくなる可能性があります。
そのため、
写真だからPNGにした方が高画質になる
という理由だけでJPEGをPNGへ変換するメリットは基本的にありません。
画像形式の指定がある場合など、目的が明確なときに変換しましょう。
PNGとJPEG、どちらを使えばいい?
迷った場合は、次のように考えると分かりやすいです。
写真
JPEGが向いています。
写真
→ JPEG
と考えるのが基本です。
ロゴ・アイコン
PNGが向いています。
ロゴ
アイコン
イラスト
→ PNG
背景を透明にしたい
PNGを使用します。
JPEGは透明背景に対応していません。
スクリーンショット
文字やUIを鮮明に残したい場合はPNGが向いています。
Webサイトの写真
容量と画質のバランスを取りやすいJPEGが使いやすいケースがあります。
ただし、現在のWebではWebPやAVIFなど別の画像形式も利用されているため、Webサイトの要件によって最適な形式は変わります。
PNG→JPEGとJPEG→PNG、どちらも変換前のファイルを残す
画像形式を変換するときは、元画像をすぐ削除しないことをおすすめします。
特に、
PNG → JPEG
では、
- 透過情報の消失
- JPEG圧縮による画質変化
が発生する可能性があります。
一度JPEGとして失われた情報は、JPEGをPNGに戻しても復元できません。
そのため、
original/
converted/
のようにフォルダを分けたり、
元画像
変換済み画像
を両方残したりすると安全です。
よくある疑問
PNGの拡張子を.jpgに変えるだけではダメ?
ダメです。
Finderで、
image.png
を、
image.jpg
へ名前変更しただけでは、画像データの形式そのものはJPEGに変換されません。
画像形式を変更する場合は、
- プレビューで書き出す
sipsで変換する
など、実際の画像変換処理が必要です。
JPEGをPNGにすれば透過できる?
JPEGをPNGに変換しただけでは、自動的に背景が透明になるわけではありません。
PNGは「透明情報を保存できる形式」ですが、
JPEG → PNG
と変換するだけで背景が自動削除されるわけではありません。
背景を透明にしたい場合は、画像編集ソフトなどを使って背景を削除し、透過情報を持ったPNGとして保存する必要があります。
JPEGをPNGにすれば高画質になる?
なりません。
JPEGで圧縮された際に失われた画像情報は、PNGへ変換しても戻りません。
ファイル形式をPNGに変更することと、元画像の情報を復元することは別です。
PNGをJPEGにすると透明背景はどうなる?
JPEGは透過情報を保持できないため、透明部分はそのまま維持できません。
透過が必要な画像はPNGのまま利用することをおすすめします。
JPGとJPEGはどちらを使えばいい?
一般的な用途では、.jpgと.jpegはいずれもJPEG画像として扱われます。
ファイル名を短くしたい場合や、多くのWebサービスとの互換性を考える場合には.jpgがよく使われますが、利用するシステムに指定がある場合はその仕様に従ってください。
プレビューとsips、どちらを使えばいい?
用途によって使い分けると便利です。
| やりたいこと | おすすめ |
|---|---|
| 画像を1~数枚だけ変換 | プレビュー |
| マウス操作だけで変換 | プレビュー |
| JPEG品質を画面で調整 | プレビュー |
| 数十枚以上をまとめて変換 | sips |
| 毎回同じ変換を行う | sips |
| シェルスクリプトで自動化 | sips |
| 形式変換とリサイズをまとめて行う | sips |
普段ターミナルを使わない場合は、まずプレビューから試すのが簡単です。
繰り返し同じ作業をするようになったら、sipsで一括処理する方法へ移行すると効率化できます。
動作確認
変換後は、Finderやプレビューで画像を開き、意図した結果になっていることを確認してください。
sipsから画像情報を確認する場合は、
sips -g format output.jpg
のように実行できます。
PNGの場合は、
sips -g format output.png
です。
また、
sips -g pixelWidth -g pixelHeight output.jpg
とすれば、画像の幅と高さも確認できます。
変換と同時にリサイズした場合は、想定したピクセルサイズになっているか確認しておくと安心です。
注意点
画像形式を変換するときは、次の点に注意してください。
元画像を残す
特にPNGからJPEGへの変換では、透過や画像情報が失われる可能性があります。
変換結果を確認するまでは元画像を残しておきましょう。
PNGの透過を確認する
背景透明の画像は、JPEGへ変換する前に本当にJPEGが必要か確認します。
JPEGを繰り返し保存しない
JPEGは非可逆圧縮なので、編集と再保存を繰り返すと画質が低下する可能性があります。
ファイルサイズだけで判断しない
PNGとJPEGは得意な画像が異なります。
ロゴや文字中心の画像を無理にJPEGへ変換すると、見た目が悪くなる場合があります。
大量変換はコピーで試す
一括変換コマンドを初めて実行する場合は、元データをバックアップした上で、数枚のコピーを使って動作確認してから大量処理することをおすすめします。
まとめ
Macでは、追加の画像変換アプリをインストールしなくても、標準の「プレビュー」やsipsコマンドを使ってPNGとJPEGを相互変換できます。
PNGからJPEGへ変換する場合は、
sips -s format jpeg input.png --out output.jpg
JPEGからPNGへ変換する場合は、
sips -s format png input.jpg --out output.png
を使用できます。
複数のPNGをJPEGへ一括変換する場合は、
for file in *.png; do
sips -s format jpeg "$file" --out "${file%.*}.jpg"
done
JPEGをPNGへ一括変換する場合は、
for file in *.jpg; do
sips -s format png "$file" --out "${file%.*}.png"
done
です。
ただし、PNGとJPEGにはそれぞれ特徴があります。
写真
→ JPEG
ロゴ・アイコン・スクリーンショット
→ PNG
背景透過が必要
→ PNG
という考え方を基本にすると、用途に合った形式を選びやすくなります。
また、
JPEGをPNGへ変換しても、JPEGで失われた画質が元に戻るわけではない
ことにも注意してください。
形式変換だけでなく画像サイズも変更したい場合は、「Macで画像を一括リサイズする方法|sipsで任意サイズに無料変換」もあわせて参考にしてください。
HEIC画像をJPEGへ変換したい場合は、「MacでHEIC画像をJPEGに変換する方法|標準機能・sipsで無料&一括変換」で詳しく解説しています。
参考資料
- Apple サポート「Macのプレビューで画像のファイルタイプを変換する」
- Apple サポート「Macでファイルをプレビューする」
- macOS標準の
sipsヘルプ
使用しているMacで利用可能なsipsのオプションは、ターミナルから次のコマンドで確認できます。
sips --help
より詳しい説明は、
man sips
で確認できます。