ساخت تصویر معکوس در سی شارپ (Mirror Image)

در این قسمت تیم کدگیت را با آموزش ساخت تصویر معکوس در سی شارپ همراهی کنید. در آموزش‌های گذشته پردازش تصویر، مبانی خواندن و نوشتن یک عکس در سی شارپ بیان شد در این قسمت ابتدا الگوریتم ساخت تصویر معکوس در سی شارپ را تشریح می‌کنیم سپس به پیاده‌سازی این الگوریتم می‌پردازیم. همچنین پیشنهاد می‌کنیم قبل از مطالعه این جلسه، آموزش‌های زیر را مطالعه کنید:

  1. خواندن تصاویر در سی شارپ
  2. ایجاد تصویر در سی شارپ
  3. حلقه For در سی شارپ

ساخت تصویر معکوس در سی شارپ

در این بخش ما به ایجاد کردن یک تصویر معکوس می‌پردازیم. اصلی‌ترین گام برای ایجاد تصویر معکوس، جابجایی مقادیر پیکسل از چپ به راست است. بدین صورت که ما تصویر ورودی خود را از چپ خوانده و در سمت راست (نقطه معکوس) آن تصویر انتقال می‌دهیم. الگوریتم این روش به صورت زیر است:

  1. دو Bitmap برای تصویر ورودی و تصویر معکوس که میخواهید بسازید، ایجاد کنید.
  2. دو متغیر برای اشاره به سمت چپ و راست تصویر ایجاد کنید. (rx اشاره به سمت راست تصویر و lx اشاره به سمت چپ می‌کند)
  3. مقادیر  ARGB (Alpha, Red, Green and Blue)، را از تصویر اولیه (به ترتیب چپ به راست) بدست اورید.
  4. در تصویر تازه ایجاد شده (به ترتیب راست به چپ) ،  ARGB (Alpha, Red, Green and Blue)آنها را قرار دهید.
  5. مراحل 3 و4 را برای هریک از پیکسل های تصویر تکرار کنید.
ساخت تصویر معکوس در سی شارپ

پیاده‌سازی تصویر معکوس در سی شارپ

همانطور که در قسمت قبل گفته شد برای پیاده سازی تصویر معکوس، پیکسل‌های تصویری را از چپ به راست خوانده و در تصویر جدیدی از راست به چپ می‌ریزیم. برای پیاده سازی دو متغیر lx و rx را در نظر می‌گیریم. Lx اشاره‌گر به پیکسل‌های تصویر اصلی است و rx اشاره‌گر به تصویر معکوس ما.

بیشتر بخوانید:  لیست پیوندی در سی شارپ (LinkedList in Csharp)

ابتدا lx عدد صفر و rx به اندازه عرض تصویر ما است. با حرکت lx به سمت راست (خواندن تصویر اصلی) یکی از rx کم می‌شود. دقت کنید به ازای حرکت یک پیکسل به lx یکی اضافه می‌شود و از rx کم می‌شود. کد پیاده‌سازی این الگوریتم به صورت زیر است:

ورودی کد بالا به صورت زیر است:

ساخت تصویر معکوس در سی شارپ

خروجی برنامه به صورت زیر است:

ساخت تصویر معکوس در سی شارپ

     پسورد: www.codegate.ir

    دیدگاهتان را بنویسید

    نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *