Resim Dosyaları İçeriği

Merhaba arkadaşlar resim dosyaları içerisinde şu kod ;
b'\xff\xd8\xff\xe0\x00\x10JFIF\x00\x01\x01\x00\x00\x01\x00\x01\x00\x00\xff\xdb\x00C\x00\x08\x06\x06\x07\x06\x05\x08\x07\x07\x07\t\t\x08\n\x0c\x14\r\x0c\x0b\x0b\x0c\x19\x12\x13\x0f\x14\x1d\x1a\x1f\x1e\x1d\x1a\x1c\x1c $.\' ",#\x1c\x1c(7),01444\x1f\'9=82<.342\xff\xdb\x00C\x01\t\t\t\x0c\x0b\x0c\x18\r\r\x182!\x1c!22222222222222222222222222222222222222222222222222\xff\xc2\x00\x11\x08\x04\x00\x03\x0x9b\xa5#\xd4\xf2\xbb\xe6\xae\xb1%\xd2Po\x97F\x08\xee(\xcfX\xa1E\xe5I\xa85\x9c\xd5\x97\x13\x99\xaa\xc1\x1d\
dikkatimi çekti neden resim dosyalarının içeriği bu şekilde bilgisayar bunu nasıl anlıyor bunu bilgisayara çeviren anlatan nedir ?

Bu içeriğin bir kısmı dosyanın türü ve boyutları ile ilgili bilgi verebilmekle birlikte çoğu kısmı piksellerdeki RGB (kırmızı, yeşil, mavi) veya RGBA değerlerini içeriyor. Eğer jpeg gibi bir dosya ise bu bilgiler sıkıştırılmış da olabiliyor.

Bize okunaksız gelen bu içerikler belirli bir kurala, formata göre oluşturulduğu için bu formatı bilen bir program tarafından kolaylıkla ekrandaki piksellere dönüştürülebilirler. Mesela png formatının kuralları için buraya bakabilirsiniz: https://en.wikipedia.org/wiki/Portable_Network_Graphics#File_header

Örneğin bu linki inceleyerek png dosyasının boyutlarını bulacak amatörce bir kod yazabiliriz:

import struct

class Image:
    def __init__(self, dosya):
        self.dosya = dosya
        with open(dosya, "rb") as d: self.data = d.read()

    def get_size(self):
        i = self.data.index(b"IHDR")
        return struct.unpack(">ii", self.data[i+4:i+12])

i = Image("SO.png")
print(i.get_size())
1 Beğeni

Çok teşekkürler hemen bakıyorum.

modülü ne işe yarıyor

Python değişkenlerinin belli bir C değişkeni halindeki hafıza alanını bytes türünden elde etmemizi sağlıyor. Burada yaptığımız gibi ikili dosyalardaki verilerin okumasında ve internet bağlantılarında bolca kullanılan bir yöntem.
https://docs.python.org/3.8/library/struct.html