کدنویس۲۱

کدنویس۲۱

با کد نویس 21 کد نویس باشید.
کدنویس۲۱

کدنویس۲۱

با کد نویس 21 کد نویس باشید.

آموزش ساخت برنامه تبدیل متن به عکس با C#

سلام دوستان در این پست برنامه سی شارپی می نویسیم که متن را در قابل عکسی به ظاهر بی فایده ذخیره کند و سپس ما بتوانیم متن را از آن استخراج کنیم.

 

ابتدا چنین محیطی طراحی کنید. نام ریچ تکست باکس را rtxt بگذارید.

محیط برنامه

حال کتابخانه زیر را اضافه کنید کنید.

1
using System.Drawing.Imaging;

وارد رویداد کلیک دکمه Save شوید و کد زیر کد زیر را در آن بنویسید.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
if (0 < rtxt.TextLength)
            {
                int size = 1;
//یک طول و عرض مناسب برای عکس پیدا می کند
                for(int i = 1; i <= rtxt.TextLength; i++)
                {
                    if(i * i >= rtxt.TextLength)
                    {
                        size = i;
                        break;
                    }
                }
//با طول و عرض انتخاب شده یک عکس خال ایجاد می کند
                Bitmap result = new Bitmap(size, size);
                List<int> n = new List<int>();
//هر حرف متن داخل ریچ تکست باکس را به عدد تبدیل می کند و در لیست n می نویسد.
                foreach (char c in rtxt.Text)
                {
                    n.Add(Convert.ToInt32(c));
                }
                Random rnd = new Random();
                for (int i = 0; i < n.Count; i++)
                {
//با جایگذاری رنگ برای هر پیکسل عکس یک عکس می سازد
                    result.SetPixel(i/size, i % size, Color.FromArgb(n.ToArray()[i], rnd.Next(255), rnd.Next(255)));
                }
                SaveFileDialog saveFD = new SaveFileDialog();
                saveFD.Filter = "PNG|*.png";
//اگر کاربر مسیری انتخاب کند عکس را با فرمت png ذخیره می کند.
                if(saveFD.ShowDialog()==DialogResult.OK)
                     result.Save(saveFD.FileName, ImageFormat.Png);
            }
            else
            {
                MessageBox.Show("Please enter something.");
            }

با تغییر ImageFormat.Png در خط 31 می توانید فرمت ذخیره را تغییر دهید.

حال در رویداد کلیک دکمه Load کد زیر را می نویسیم.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
OpenFileDialog openFD = new OpenFileDialog();
            openFD.Filter = "PNG|*.png";
            List<char> c = new List<char>();
            if(openFD.ShowDialog()==DialogResult.OK)
            {
                Bitmap photo = new Bitmap(openFD.FileName);
//رنگ هر پیکسل عکس را می خواند و مقدار قرمز آن را به لیست c اضافه می کند
                for(int i=0;i < photo.Width;i++)
                {
                    for (int j = 0; j < photo.Height; j++)
                    {
                        Color pcolor = photo.GetPixel(i, j);
                        c.Add(Convert.ToChar(pcolor.R));
                    }
                }
            }
            string output = "";
//حروف موجود در لیست c را به صورت متن در متغیر output ذخیره می کند
            foreach(char ch in c.ToArray())
            {
                output += ch;
            }
            rtxt.Text = output;

این طریقه ذخیره و خواندن متن از عکس است.

امیدوارم خوشتان آمده باشد.

تا دیگر پست ها خداحافظ

نظرات 0 + ارسال نظر
برای نمایش آواتار خود در این وبلاگ در سایت Gravatar.com ثبت نام کنید. (راهنما)
ایمیل شما بعد از ثبت نمایش داده نخواهد شد