ICT

PNGファイル内の幅と高さを編集する

投稿日:

1. はじめに

PNGファイル内には、その画像の幅と高さの情報が埋め込まれています。

この部分の値を変える方法について説明します。

2. PNGファイルの構成

PNGファイルは、先頭から以下の構成になっています。

  1. PNG ファイルシグネチャ(8バイト)
  2. チャンク
  3. チャンク
  4. (任意個のチャンクが続きます)

チャンク1つ分には、先頭から順番に以下の情報が入っています。

  1. チャンクデータの長さ(4バイト)
  2. チャンク形式(4バイト)
  3. チャンクデータ(長さは「チャンクデータの長さ」で指定される)
  4. このチャンクのCRC(4バイト)

チャンクにはいろいろな種類がありますが、必須なチャンクがいくつかあります。

その1つが、IHDR(イメージヘッダ)チャンクで、この中に「画像の幅」「画像の高さ」が入っています。

IHDRは1つ目のチャンクであり、そのチャンクデータにセットされる項目は以下の通りです。

幅:                4 bytes
高さ:              4 bytes
ビット深度:        1 byte
カラータイプ:      1 byte
圧縮手法:          1 byte
フィルター手法:    1 byte
インターレース手法:1 byte

(引用元:PNG 仕様書: チャンク仕様書

3. IHDRチャンク

以下は、とあるPNGファイルをバイナリエディタで開いたところです。

先頭に PNGファイルシグネチャがあり、その直後に IHDRチャンクが配置されています。

IHDR の場合、先ほど書いた通り、チャンクデータの先頭に幅(4バイト)、高さ(4バイト)が入っています。

この画像の場合、幅には「00 00 01 CF」高さには「00 00 01 7B」がセットされていますが、これはそれぞれ10進数で「463」と「379」です(単位はピクセル)。

4. バイナリエディタで幅と高さを編集して保存する

ここで使っている HxD というバイナリエディタの場合、上書きした箇所をクリックして、そのまま文字を上書き入力することができます。

その後、画面上部にある [上書き保存] アイコンをクリックします。

これで、元のファイルが上書きされました。

「幅」と「高さ」の両方を、「FF FF FF FF」で上書きしました。
※ 先ほどとは違うファイルです。

5. 参考

📂-ICT

執筆者:labo


comment

メールアドレスが公開されることはありません。

関連記事

テキストファイルを活用しましょう

目次1. テキストファイルとは?2. テキストファイルは特定のアプリケーションに縛られません3. テキストファイルを作成・編集するための「テキストエディタ」4. テキストファイルを便利にするための記述 …

no image

メディアリテラシーに関する情報

政府機関 総務省|教育情報化の推進|ICTメディアリテラシーの育成 2 ICTメディアリテラシー育成プログラムの調査・開発 (3)学習項目の選定<ICTメディアリテラシー学習項目> リテラシーを身につ …

KeePass の使い方

パスワード管理ツールである KeePass について説明します。 スポンサードリンク 目次1. KeePass についてKeePassには、2つのエディションがある2. インストール方法3. 準備作業 …

no image

ネットにおけるプライバシーについて

目次1. 基本的なこと2. SNSやブログで情報発信する時に気を付けること3. 個人を特定することにつながる情報4. 画像をアップロードする場合5. 配達物の宛先ラベル6. 関連記事 1. 基本的なこ …

ICTリテラシー

スマートフォンが紛失したらどうすればよいのか?

スマートフォンが紛失することを考慮して、日頃どういう準備をすればよいのか? 紛失した時には何をすればよいのか? についての情報をまとめます。 ※ ドコモ、au、SoftBank といったキャリアも遠隔 …