יש הרבה פורמטים של קבצי תמונה: bmp, png, jpg ועוד עשרות אחרים.
לכל פורמט יש מבנה קובץ פנימי משלו, כך שאם אינך משתמש בספריה ייעודית שיודעת לפענח את הקובץ, תצטרך ללמוד בעצמך את הפורמט, ולבצע פעולות קריאה בהתאם.
אתה לא יכול לקרוא קובץ בלי לדעת איך הוא בנוי, ואתה לא יכול לדעת איך הקובץ בנוי בלי לדעת מה הסוג שלו.
בגדול, לקובץ BMP יש "כותרת" שמורכבת מ-2 מבנים ומתארת את תוכן הקובץ, כולל את ממדי התמונה לעורך ולרוחב.
ולאחר מכן יש את המידע של הפיקסלים.
אבל אפילו פורמט יחסית פשוט זה יכול להכיל דברים שונים, למשל הפיקסלים יכולים להיות בני 256 צבעים עם פלטה (מערך מידע על RGB), או יכולים להיות בני 16 סיביות RRRRRGGGGGBBBBB או 24 או אפילו 32 סיביות.