TGViewer
Md Daily Md Daily @mddaily · 753 subscribers
Post #112 160
#ام_دی_کورس

دانش پایه Exif Data و سعی در ادیت کردن Exif Byte Order عکس با Golang

خب قبل از اینکه بریم سراغ کد نویسی و کاری که میخوایم انجام بدیم باید با یک سری مفاهیم آشنا بشیم :)

💡خب اول از همه Exif data توی عکس ها چی هستند؟
فایل‌های EXIF (فرمت فایل تصویری قابل تعویض) داده‌های مهم عکس‌ها را ذخیره می‌کنند. تقریباً همه دوربین‌های دیجیتال هر بار که یک عکس جدید می‌گیرید، این فایل‌های داده را ایجاد می‌کنند. یک فایل EXIF تمام اطلاعات مربوط به خود تصویر را در خود نگه می‌دارد - مانند سطح نوردهی، جایی که عکس را گرفته‌اید و تنظیماتی که استفاده کرده‌اید.

🪄ما قراره Exif Byte Order را تغییرش بدیم که:
در متا دیتا های عکس مقدار Exif Byte Order دو حالت میتونه باشه: Little-endian و Big-endian که اگر عکس با گوشی اندرویدی گرفته شده باشه احتمالا Little-endian خواهد بود و اگر با گوشی آیفون گرفته شده باشه Big-endian هستش.


📄 تعریف little-endian: یک روش برای ذخیره سازی داده‌ها در رایانه است که در آن داده‌ها با توجه به کوچکترین بخش آن‌ها مرتب می‌شوند. به عبارتی در این روش، بیت‌های کم ارزش داده در مقابل بیت‌های با ارزش قرار می‌گیرند. 🔄
برای مثال، عدد ۳۰۰ با فرمت little-endian به این صورت ذخیره می‌شود: ۰۴۷۶

📄 تعریف big-endian: یک روش برای ذخیره سازی داده‌ها در رایانه است که در آن داده‌ها با توجه به بزرگترین بخش آن‌ها مرتب می‌شوند. به عبارتی در این روش، بیت‌های باارزش داده در مقابل بیت‌های کم‌ارزش قرار می‌گیرند. 🔄
برای مثال، عدد ۳۰۰ با فرمت big-endian به این صورت ذخیره می‌شود: ۷۶۰۴

💎 اما دقیقا endian ها چی هستند و چه کاربردی دارند؟

✨
کاربرد اصلی endian ها در ذخیره سازی اعداد بیشتر برای پردازش رایانه‌ای است. وقتی داده‌ها به درستی بر اساس endian باشند، برنامه‌ها و سیستم‌ها می‌توانند آنها را به درستی تفسیر کنند.

✅ برخی از کاربردهای endian شامل:
- ارتباط بین سیستم‌های مختلف: وجود استانداردهای انتقال داده که مشخص می‌کنند که در رابطه با endian چه روشی استفاده شود، تضمین می‌کند که اطلاعات به درستی تفسیر می‌شوند.
- پردازش تصویر و صدا: در برخی فرمت‌های تصویری و صوتی، endian می‌تواند تأثیری در نحوه تفسیر داده‌ها و کیفیت آنها داشته باشد.

به طور خلاصه با استفاده از endian، سیستم‌ها و برنامه‌ها می‌توانند به درستی با یکدیگر ارتباط برقرار کنند و داده‌ها را به درستی تفسیر کنند.

ادامه در پست بعدی...

🆔 @MdDaily
  • ⚡ 2
More from @mddaily
  1. Oct 15, 2026اگه این مدت برای کد زدن زیاد با Codex کار کرده باشید، احتمالاً می‌دونید که وسط کار و دقیقا…
  2. Oct 10, 2026من معمولا از تجربه های شخصی خارج از دنیای فنی چیزی نمی نویسم توی کانال ولی این بار فرق دار…
  3. Oct 3, 2026موقع ثبت نام از کد دعوت اختصاصی MdDaily استفاده کنید و ثبت نامتون شامل ۲۰ درصد تخفیف میشه.…
  4. Oct 3, 2026⭕️ هشتمین رویداد ماگ تهران (مارکتینگ و توسعه کسب‌و‌کار) 🔥 شبکه سازی، ارائه و گفتگوی کاری…
  5. Sep 4, 2026داشتم یه مقاله‌ای رو از Ryan Carniato (خالق فریم‌ورک SolidJS) می‌خوندم با عنوان «هیچ‌کس بر…
  6. Aug 29, 2026داشتم رویه سرویسی کار میکردم که نیاز به نقشه داشتم. از یه طرف میخواستم از OSM استفاد کنم ب…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →