質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.37%
ファイル

ファイルとは、文字列に基づいた名前又はパスからアクセスすることができる、任意の情報のブロック又は情報を格納するためのリソースです。

Q&A

解決済

4回答

674閲覧

.png拡張子と.jpeg拡張子の違いを、実際に画像ファイルさわって確かめたかった(できなかった)

karino_nao

総合スコア18

ファイル

ファイルとは、文字列に基づいた名前又はパスからアクセスすることができる、任意の情報のブロック又は情報を格納するためのリソースです。

0グッド

1クリップ

投稿2024/10/25 09:30

編集2024/10/27 08:00

実現したいこと

画像ファイルの.png拡張子と.jpeg拡張子での違いとして
以下が分かるように、画像ファイルを触って実際に見てみたい
①画像ファイルの拡大縮小で、画像の内容がつぶれない・つぶれること
②メモリサイズが大きい・小さい、をしめしたい。

発生している問題・分からないこと

<私の認識>
.png拡張子 :圧縮拡張子は 可逆(拡大縮小しても、画像内容はつぶれない)
.jpeg拡張子:圧縮拡張子は非可逆(拡大縮小したら、画像内容はつぶれる)
※同じ画像であれば、メモリのサイズは
.png拡張子>.jpeg拡張子という関係にある

<ためした手順>
①windowsのペイントにて、適当ならくがきをする
②保存する際、「名前を付けて保存」で
以下2つの拡張子を選択し別々の画像ファイルとした
α:.png拡張子
β:.jpeg拡張子
③②で保存した画像ファイルα、βを
ペイントのホーム→サイズ変更と傾斜、にて
パーセント(水平方向)を10にして保存
(垂直方向も自動で動くので省略)
④③で保存した画像ファイルα、βを
③と同じ方法で、今度は
パーセント(水平方向)を200にする
⑤すると
1:両方とも同じように画像がつぶれた
2:メモリサイズは、α:.png拡張子<β:.jpeg拡張子
となった
⑥???????
(想定と逆…というか想定のままとならない…)

イメージ説明

該当のソースコード

特になし

試したこと・調べたこと

  • teratailやGoogle等で検索した
  • ソースコードを自分なりに変更した
  • 知人に聞いた
  • その他
上記の詳細・結果

<試したこととその結果(または私の認識)>
・私のそもそもの認識がおかしいか?
→ネットや書籍を確認する限りはそうではない…のか…
・①~⑤の私の手順がおかしいか?
→2度ほどやり直したが結果が変わらず
・ペイントだとできない?
→結構前ですが、似たようなことをしてその時は出来た…
・ペイントの仕様変更?
→というのは、探したが見当たらなかった
・変にどん詰まりしている可能性
→大。だがどこかわからない…

補足

こちらでそもそも質問していい事例かわからなかったのですが
どうにも色々調べても試しても逆で、どうしたものかと思い困っています…
私の認識が逆…なのか、やり方がまずいのか、仕様が変わったのか、それともなにか別のじしょうなのか…
どこでどうなっているかが分からず、問題の切り分けもままならないので
ヒントなど頂ければと思い質問致します。

※追記
皆さま、回答頂きありがとうございました!
(全体へ書く書き方が分からなかったので、こちらにて失礼いたします)
そもそもの私の誤解間違いに気づけて助かりました!
一旦終了しようと思いますが、今後もちょっと色々試していこうと思います。
貴重なお時間を頂き、本当にありがとうございました!

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

juner

2024/10/25 10:07 編集

拡大縮小しても、画像内容はつぶれない は ラスターイメージ(bmp, png, jpeg, gif)じゃなくて ベクターイメージ (svg) では? 可逆圧縮は 圧縮しても元に戻せるってだけです。 拡大縮小 は 圧縮とは関係ないです。 https://ja.wikipedia.org/wiki/%E5%8F%AF%E9%80%86%E5%9C%A7%E7%B8%AE https://ja.wikipedia.org/wiki/JPEG https://ja.wikipedia.org/wiki/Portable_Network_Graphics https://ja.wikipedia.org/wiki/Scalable_Vector_Graphics
jimbe

2024/10/27 09:02 編集

重箱の隅のようなことですが、「.png拡張子と.jpeg拡張子」の『拡張子』というのは単にファイル名の最後に "." の後に書かれている数文字の文字列のことで、ファイルのフォーマット (PNG 形式や JPEG 形式)とは直接は関係ありません。
karino_nao

2024/10/27 07:51

>拡大縮小しても、画像内容はつぶれない は ラスターイメージ(bmp, png, jpeg, gif)じゃなくて ベクターイメージ (svg) では? 可逆圧縮は 圧縮しても元に戻せるってだけです。 拡大縮小 は 圧縮とは関係ないです。 ありがとうございます、ご指摘ありがとうございます …私、ごっちゃにしていました 教えて頂いた参照先、目を通して (すべてが理解できたわけではないですが…) ラスターイメージとベクターイメージ、 各イメージの特性と圧縮方法への誤解 が、ごっちゃになっていた、という気づきを得ました
karino_nao

2024/10/27 07:52

>重箱の隅のようなことですが、「.png拡張子と.jpeg拡張子」の『拡張子』というのは単にファイルの最後に "." の後に書かれている数文字の文字列のことで、ファイルのフォーマット (PNG 形式や JPEG 形式)とは直接は関係ありません。 か、完全に誤解していました、ご指摘ありがとうございます (幸いたしめた時の画像保存時は、  保存する、という形式をたどっていました…)
guest

回答4

0

ベストアンサー

画像ファイルの.png拡張子と.jpeg拡張子での違いとして以下が分かるように、画像ファイルを触って実際に見てみたい
①画像ファイルの拡大縮小で、画像の内容がつぶれない・つぶれること
②メモリサイズが大きい・小さい、をしめしたい。

勘違いをしているようなので、そのあたりを含めて解説をしてみます。

  • 「拡張子」はファイル名への添え物なので、今回のような検討にキーワードとしつ使うのはふさわしくない。
    対象にしているのは、拡張子そのものではなく、ファイルフォーマットです。JPEGとPNGはそれぞれ画像保存のためのフォーマットで、それぞれいろいろな特徴を持ちます。 (ここではフォーマットの方は大文字にしました) たとえば、JPEGフォーマットのファイルには、一般的には拡張子として jpegやjpgなどを使いますが、違うものを付けても、拡張子そのものを付けなくてもかまいません。付けなくてもファイルのフォーマットそのものは変わりません。

  • JPEGやPNGは画像を圧縮して保存するためのフォーマット
    画像のデータというのはサイズ(容量)が大きくなります。カラーであれば、それぞれの画素にRGBの3色が必要で、さらにそれぞれに16ビットなどの値が必要になります。それが画素数分必要になるからです。 そのような大きなデータの保存にはコストがかかるため、縦横の画素数(解像度)を変えないまま圧縮して保存するためのフォーマットがいくつも考案されてきました。 JPEGやPNGもそういったフォーマットです。 データを圧縮しないフォーマットというのも存在します。TIFF形式はその1つです。

  • ファイルフォーマットでのデータの圧縮と画像の拡大縮小は異なる概念
    ファイルフォーマットでのデータの圧縮については上記の通りです。画像の拡大縮小というのは、いろいろな操作のことを指す言葉ですが、画像の縮小についての質問の操作を見ると、同じ画像の縦横の比率を変えずに小さくするような操作をしています。このような操作は、複数の元ピクセルを1つのピクセルに変換するような操作なので、画像データそのものとしてデータが失われます。 データのサイズが小さくなりますが、これは圧縮とは呼びません。

  • 可逆圧縮と非可逆圧縮
    データを圧縮する場合、可逆 圧縮と非可逆圧縮という2つの方式があります。可逆 圧縮は圧縮したデータを元に戻す(解凍する)と元のデータが完全に復元されますが、非可逆圧縮では完全には元に戻りません。ただし、非可逆圧縮では、データの性質を利用して、より高い圧縮率が得られるようにしています。 テキストデータなどでは元に戻らなければ困るので非可逆圧縮は使われませんが、画像データの場合、人間の目が細かな違いが認識できないことを利用して、より高い圧縮率が得られるようにしています。

質問の内容でJPEGとPNGの圧縮率の違いを確認するのであれば
・TIFFなどの非圧縮データを用意する。 ただし、もし画質の変化を確認したいのであれば、元がJPEGのデータではだめで、カメラで直接TIFFなどに出力したものなどを用意する。 (Webからも入手できるかも)
・データを画像編集ソフトで開き、JPEGやPNGで保存する。圧縮率を変えたものをいくつか出力して比較するのもいいでしょう。
・できたファイルのサイズを確認する。
・それぞれのファイルを開き、画質の違いを確認する。(よほど目がよくないと違いはわからないでしょう)

投稿2024/10/26 09:28

TakaiY

総合スコア13687

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

karino_nao

2024/10/27 07:54

色々なご指摘ありがとうございます! また、一応上記にて試してみたのですが 目視だと違いがさっぱりわかりませんでした… やり方を精査してまたやってみようと思います!
karino_nao

2024/10/27 07:59

ベストアンサーに選ばせていただきました。
TakaiY

2024/10/27 13:53

> 目視だと違いがさっぱりわかりませんでした… > やり方を精査してまたやってみようと思います! 目視で判別するのは難しいでしょうね。 JPEGでの保存を繰り返すと劣化が蓄積するので、目視で確認できるレベルになることがあります。
guest

0

.png拡張子 :圧縮拡張子は 可逆
「可逆」とは「逆向きの画像形式変換をすると元に戻る」という意味です
txt => zip => txt の話と同じ。

誤:拡大縮小しても、画像内容はつぶれない
正:tiffやbmpやgif => 同サイズのpngに変換 => 同サイズの元の形式に変換 で、元通りになる
jpegは、tiffやbmpやgif => 同サイズのjpegに変換 => 同サイズの元の形式に変換 で元通りになりません。
(上記の「サイズ」は「ファイルのバイト数」じゃなくて「画像の縦横ドット数・色ビット数」のことです)

縦横1000x1000の画像を10x10の画像にしたら、その後10x10の画像を1000x1000の画像にしても、それぞれどういう変換でも元通りになりえないのはわかるでしょう。

「圧縮」が画像サイズ(サイズは上記の意味)の変更じゃなくて、「100MBのtiffを同画像サイズの変換でpngにすると50MBになって、また同サイズのtiffにしたら100MBになった」というようなファイルサイズの話ならあり得ます。

投稿2024/10/25 13:32

otn

総合スコア85766

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

karino_nao

2024/10/27 07:53

ご指摘ありがとうございます。 そもそも私自身の可逆圧縮の意味を取り違えていたようでした また、サイズの意味を取り違えていたようで…誤解していたと気づけて助かりました!
otn

2024/10/27 11:56 編集

> そもそも私自身の可逆圧縮の意味を取り違えていたようでした そうですね。さすがに「可逆」の意味は分かっていたでしょうが、 「圧縮」⇒ 「より高圧縮率の画像形式に変換」or「同じ画像形式だが品質を落として圧縮率を上げる(JPEGなどなら可)」であって、「画像の縦横サイズを小さくする」ではないというか、「画像の縦横サイズを小さくする」ことを「圧縮」と表現する例は見たこと無いです。せいぜい「縮小」か。 圧縮⇔伸張(or元に戻すなら復元などもあり) 縮小⇔拡大
guest

0

それは実験の方向が間違っているように思われます。

最初にイメージの縮小を行っているので、保存先のフォーマットとは関係なく情報は失われ(つぶれて)しまいます。
コピー機で縮小コピーを掛けた画像をもう一度拡大コピーにかけたようなものです。最初の縮小で失われた情報がどこかからか再度補填されることはあり得ず、同じ品質のプリントが再現されることはありません。

jpegとpngの性質の違いを確かめたいなら、次のようにしなければならないと思います。

  1. オリジナル画像をビットマップ画像としてとっておき、
  2. png化→ビットマップ化、jpg化→ビットマップ化をそれぞれ行い、
  3. オリジナルと再ビットマップ化画像を比較

ChatGPTにテスト用スクリプトを書いてもらってみました。

プロンプト:

画像ファイルフォーマットの変換の実験を行いたい。ツールとしてimagemagickを使い、次のような動作をするシェルスクリプトを作ってください。 1. 適当なビットマップ画像を作成する。これをimage.bmpとする。 2. image.bmpから、image.pngとimage.jpgをそれぞれ作る。 3. image.pngをビットマップ画像に変換してimage_png.bmpを作る。 4. image.jpgをビットマップ画像に変換してimage_jpg.bmpを作る。 5. image.bmpとimage_png.bmpを比較し、内容が同一であるか否かを判定する。 6. image.bmpとimage_jpg.bmpを比較し、内容が同一であるか否かを判定する。

得られたスクリプト:

#!/bin/bash # エラーハンドリング: 途中でエラーが発生した場合は終了する set -e # 1. 適当なビットマップ画像を作成する(サイズは100x100の白画像) convert -size 100x100 xc:white image.bmp # 2. image.bmpからimage.pngとimage.jpgを作成する convert image.bmp image.png convert image.bmp image.jpg # 3. image.pngをビットマップ画像に変換してimage_png.bmpを作成する convert image.png image_png.bmp # 4. image.jpgをビットマップ画像に変換してimage_jpg.bmpを作成する convert image.jpg image_jpg.bmp # 5. image.bmpとimage_png.bmpを比較し、同一か否かを判定する echo "Comparing image.bmp and image_png.bmp..." compare -metric RMSE image.bmp image_png.bmp null: 2>&1 | grep -q "^0" && \ echo "image.bmp and image_png.bmp are identical." || \ echo "image.bmp and image_png.bmp differ." # 6. image.bmpとimage_jpg.bmpを比較し、同一か否かを判定する echo "Comparing image.bmp and image_jpg.bmp..." compare -metric RMSE image.bmp image_jpg.bmp null: 2>&1 | grep -q "^0" && \ echo "image.bmp and image_jpg.bmp are identical." || \ echo "image.bmp and image_jpg.bmp differ."

実行結果:

$ bash img_conv_test.sh Comparing image.bmp and image_png.bmp... image.bmp and image_png.bmp are identical. Comparing image.bmp and image_jpg.bmp... image.bmp and image_jpg.bmp differ.

投稿2024/10/25 11:10

KojiDoi

総合スコア13692

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

karino_nao

2024/10/27 07:54

ご指摘ありがとうございます! 実験の方向が間違っていますね、色々誤解をしていました。 jpegとpngの性質を知る上でのシェルスクリプト(ですかね) を動かす方法を私がわからないところがありますが (たぶん、各画像を比較するのがcompareで  その結果が見れる、のだと思っています) 今後調べて実行して実験してみようと思います
guest

0

jpegの圧縮率は自然画などドット間の差がある程度発生している場合高くなります。
逆にのっぺりした少ない色数で書かれたような画像の場合思ったほどの効果は得られないため
pngなどの圧縮のほうが効率的に適用されることもあるでしょう

投稿2024/10/25 10:30

yambejp

総合スコア116443

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

karino_nao

2024/10/27 07:55

ご指摘ありがとうございます! 自然画であったり、のっぺりした少ない色数で書かれたような画像であったり そもそももとになる絵自体も考慮に入れた方がよさげですね… 私全然考えずに(今回だとのっぺりの方ですかね)試していたので 今後試すときはちょっとその点を考慮してみます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.37%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問