
Blue Sky PNG
Blue Sky PNG は のサンプル(Wikimedia Commons を基にしています)、512×384。ダウンロード・パーサ・プレビュー・ファイル種別判定のテストに使えます。
01-blue-sky.png8c4e8b9755c9a7a830220dbc1976923c1b25433377773567ed456ce64b6f5890Image
可逆圧縮のラスター画像形式。8バイトの固定シグネチャの直後にIHDRチャンクが続きます。
89 50 4E 47 0D 0A 1A 0A .PNG....SIGNATURE = bytes.fromhex("89504e470d0a1a0a")
OFFSET = 0
def is_png(path: str) -> bool:
with open(path, "rb") as f:
f.seek(OFFSET)
head = f.read(len(SIGNATURE))
return head == SIGNATUREconst SIGNATURE = [0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a];
const OFFSET = 0;
// bytes: a Uint8Array / Buffer holding the start of the file
export function isPng(bytes) {
return SIGNATURE.every((byte, i) => bytes[OFFSET + i] === byte);
}package fileid
import "bytes"
var ispngSignature = []byte{0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a}
const ispngOffset = 0
func IsPng(b []byte) bool {
end := ispngOffset + len(ispngSignature)
if len(b) < end {
return false
}
return bytes.Equal(b[ispngOffset:end], ispngSignature)
}const SIGNATURE: &[u8] = &[0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a];
const OFFSET: usize = 0;
fn is_png(bytes: &[u8]) -> bool {
bytes.get(OFFSET..OFFSET + SIGNATURE.len()) == Some(SIGNATURE)
}<?php
$signature = "\x89\x50\x4e\x47\x0d\x0a\x1a\x0a";
$offset = 0;
function is_png(string $bytes): bool {
global $signature, $offset;
return substr($bytes, $offset, strlen($signature)) === $signature;
}Portable Network Graphics は画像のプレビュー、サムネイル、メタデータ確認、アップロード検証などで広く使われます。解像度・アルファ・圧縮・ファイルサイズが実装の挙動に影響するため、複数のサイズでテストしてください。
メディアファイルも、壊れたメタデータ・極端な寸法・長い再生時間・異常なチャンクでデコーダに負荷をかけることがあります。処理前にサイズ・寸法・長さを読み取ってください。
8 個のサンプルで、極小画像・高解像度画像・アルファチャンネル・圧縮しにくいアセットをテストできます。

Blue Sky PNG は のサンプル(Wikimedia Commons を基にしています)、512×384。ダウンロード・パーサ・プレビュー・ファイル種別判定のテストに使えます。
01-blue-sky.png8c4e8b9755c9a7a830220dbc1976923c1b25433377773567ed456ce64b6f5890
Flower Garden PNG は のサンプル(Wikimedia Commons を基にしています)、640×360。ダウンロード・パーサ・プレビュー・ファイル種別判定のテストに使えます。
02-flower-garden.png936f1936e08d92332d322d1375d8bdce7acdbeb110659d7e56f0ba10eb9fe5c7
Navy Blue Sky PNG は のサンプル(Wikimedia Commons を基にしています)、768×383。ダウンロード・パーサ・プレビュー・ファイル種別判定のテストに使えます。
03-navy-blue-sky.png0135de555c0d98a165ea21adddbe53f41477c1e2009162dca0b80ce3891de225
Nature Sky PNG は のサンプル(Wikimedia Commons を基にしています)、720×540。ダウンロード・パーサ・プレビュー・ファイル種別判定のテストに使えます。
04-nature-sky.png7b34840dee4f5fecbea7aec51c9113ef7fcf4b08c38e21f3a9604d1b89f59513
Sky Landscape PNG は のサンプル(Wikimedia Commons を基にしています)、768×576。ダウンロード・パーサ・プレビュー・ファイル種別判定のテストに使えます。
05-sky-landscape.png55ef3c8803651b27f7cef6214dba60c1ca73ffe427c529acba4bd642d853a8ea
Blue Night Sky PNG は のサンプル(Wikimedia Commons を基にしています)、960×640。ダウンロード・パーサ・プレビュー・ファイル種別判定のテストに使えます。
07-blue-night-sky.pnge926f8cd9f981d98f256acaf82e2266733e7d8d1507861904b53ebf5508925d3
NASA Earth 2048x2048 PNG は のサンプル(Wikimedia Commons を基にしています)、2048×2048。ダウンロード・パーサ・プレビュー・ファイル種別判定のテストに使えます。
nasa-earth-2022.pngf2bf466a5173fec5b3e0492312138c026d83dcd1c5980c45383d6684d07aad0a
NASA Blue Marble PNG は のサンプル(NASA Image and Video Library を基にしています)、640×640。ダウンロード・パーサ・プレビュー・ファイル種別判定のテストに使えます。
nasa-blue-marble-2012-east.png245e1a4eecaf262b7bbab32320b42e80b378ecf89f1642f6b36df4c77f543056Portable Network Graphics ファイルはバイトシグネチャ 89 50 4E 47 0D 0A 1A 0A (".PNG....") で始まります。拡張子に頼らず、この先頭バイトを読み取って形式を判定してください。
Portable Network Graphics のMIMEタイプは image/png です。
Portable Network Graphics ファイルは .png 拡張子を使います。拡張子は慣習にすぎず中身を保証しないため、シグネチャや構造のチェックと組み合わせてください。