Ini bukan soalan tetapi percubaan untuk meningkatkan pemahaman saya tentang cara DPI disimpan dalam pelbagai format fail dan membincangkan sebab ia berfungsi.
Saya banyak bekerja dengan imej (JPG, PNG dan Tiff) dan mengesan peleraiannya.
Sebagai contoh, saya boleh menjalankan ini pada imej dalam Imagick:
$imagick = new Imagick($filename); $data = $imagick->identifyimage(); var_dump($data);
Ia akan memberi saya resolusi dan unit (PixelsPerCentimeter atau PixelsPerInch)
Dalam Windows (11) saya hanya dapat melihat peleraian dalam sifat JPG tetapi bukan sifat PNG, sama ada anda menetapkan JPA kepada PixelsPerCentimeter atau PixelsPerInch ia dipaparkan sebagai (300 dpi ).
Dalam Imagick (versi: ImageMagick 6.9.11-60 Q16 x86_64) - ia dapat melihat perbezaan antara JPG yang disimpan dengan PixelsPerCentimeter dan JPG yang disimpan dengan PixelsPerInch. Tetapi untuk PNG, tidak kira bagaimana saya mencipta/menyimpannya dalam Photoshop, ia memberikan PixelsPerCentimeter.
Photoshop (24.1.0) juga boleh mengesan PixelsPerCentimeter pada JPG - tetapi PNG semuanya "mengatakan" mereka PixelsPerInch, walaupun saya menyimpannya sebagai PixelsPerCentimeter.
Sekarang saya betul-betul faham 118.11 PixelsPerCentimeter = 300 PixelsPerInch tetapi saya sangat berminat dengan sebab Windows/Photoshop dan Imagick memperlakukan mereka seperti ini?
Saya memang menganggap bahawa mencipta fail dalam Photoshop pada mulanya mungkin mempunyai kesan sampingan, jadi saya mencipta fail menggunakan Imagick (PNG, 300dpi, PixelsPerInch), tetapi Imagick menetapkannya sebagai 118 PixelsPerCentimeter.
Jadi saya rasa soalan saya ialah: Adakah perbezaan ini bergantung pada cara fail dibaca atau metadata sebenar disimpan dalam jenis fail?
Ini bukan jawapan yang lengkap dan berwibawa - lebih seperti "petunjuk" kerana tiada siapa yang menjawab anda.
Ia agak ranjau, perisian yang berbeza mempunyai panjang yang berbeza. Jika anda ingin menerokainya dengan lebih lanjut, pilihan
exiftool
及其-v
biasanya paling membantu.Mengenai imej PNG
Spesifikasi PNG asal mempunyai
pHYs
blok yang hanya memberikan resolusi mendatar dan menegak dalam meter, inci tidak tersedia. Pelbagai tag PNG diterangkan di sini.Sesetengah perisian (ImageMagick dan
exiftool
)将(JPEG 样式)APP1 数据(见下文)非正式地存储在zTXt
menyekat. Ada yang tidak.Pada Julai 2017, spesifikasi PNG telah dikemas kini untuk membolehkan
eXIf
blok. Lihat di sini.Mengenai imej JPEG
Dalam JPEG, resolusi x/y boleh disimpan dalam segmen APP0, APP1 atau APP13 (Photoshop). Penerangan terbaik yang saya tahu ialah di sini.
Saya tidak pernah begitu berminat dengan data XMP, tetapi saya percaya resolusi x/y mungkin disimpan di sana juga.