PDA

View Full Version : تبدیل کد اسکی به کاراکتر



terrorhell
یک شنبه 21 تیر 1394, 20:55 عصر
سلام دوستان
من یک سری کد اسکی حروف فارسی دارم ولی همش علامت سوال نمایش میده

منون میشم راهنمایی کنید

int value = pixel.B;
MessageBox.Show(value.ToString());
char c = Convert.ToChar(value);
string letter = System.Text.Encoding.ASCII.GetString(new byte[] { Convert.ToByte(c) });


متغیر value کد اسکی حروف مثلاً ( آ ) رو داخل خودش داره ممنون میشم راهنمایی کنید

Mahmoud.Afrad
یک شنبه 21 تیر 1394, 21:52 عصر
خب حروف فارسی اسکی نیست بلکه یونیکد هست.

terrorhell
یک شنبه 21 تیر 1394, 23:06 عصر
خب میشه یک بیشتر راهنمایی کنید
مثلا کد 1568 رو چطوری به حروف تبدیل کنم ؟

terrorhell
یک شنبه 21 تیر 1394, 23:12 عصر
این اررور رو بهم میده وقتی از این کد استفاده میکنم :
Value was either too large or too small for an unsigned byte.


int value = pixel.B ;
MessageBox.Show(value.ToString());
char c = Convert.ToChar(value);
string letter = System.Text.Encoding.UTF8.GetString(new byte[] { Convert.ToByte(c) });

Mahmoud.Afrad
یک شنبه 21 تیر 1394, 23:51 عصر
با cast کردن عدد به کاراکتر

int value = 1570;
char ch = (char) value;


یا به صورت زیر که رشته بدست میاد

int value = 1570;
byte[] b = BitConverter.GetBytes(value);
string letter = System.Text.Encoding.Unicode.GetString(b);

terrorhell
دوشنبه 22 تیر 1394, 00:07 صبح
مرسی خیلی لطفا کردین
یه سوال دیگه داشتم pixel ها در تصاویر ( RGB ) از 0 تا 255 هستن و من با تابع setpixel یک سری رشته مثل (سلام ) رو داخل B ست میکنم ولی حروف انگلیسی بین 0 تا 255 هستن ولی حروف فارسی خیلی بیشتر از این رنج مقدار هستن مثل ( 1570 )

چطوری میتونم این مقادیر حروف فارسی رو در pixel ها بنویسیم
مرسی

amirali0079
دوشنبه 22 تیر 1394, 09:01 صبح
شما دارین رنگ رو با حروف اسکی اشتباه میکنین !
اونی که از 0 تا 255 هست رنگ هست هر پیکسل سه تا عدد از 0 تا 255 داره بش میگن RGB
اگر میخواین تو یه تصویر متن فارسی بنویسید یا انگلیسی فرقی نداره از کلاس Graphics و DrawFromImage اگه اشتباه نکنم باید استفاده کنید.

terrorhell
دوشنبه 22 تیر 1394, 09:09 صبح
شما دارین رنگ رو با حروف اسکی اشتباه میکنین !
اونی که از 0 تا 255 هست رنگ هست هر پیکسل سه تا عدد از 0 تا 255 داره بش میگن RGB
اگر میخواین تو یه تصویر متن فارسی بنویسید یا انگلیسی فرقی نداره از کلاس Graphics و DrawFromImage اگه اشتباه نکنم باید استفاده کنید.

سلام دوست عزیز مرسی از راهنماییت ولی این چیزی که من میگم مربوط به مباحث نهانگاری میشه
من نمیخوام نوشتم تو عکس باشه من فقط میخوام کد اسکی نوشتم تو بیت های عکس ذخیره بشه و کسی نبینه ولی حروف فارسی به دلیل بزرگ بودن کد 1570 تا 15.. در مقادیر 0 تا 255 پیکسل های رنگی جا نمیگیرن

محمد رضا فاتحی
دوشنبه 22 تیر 1394, 09:27 صبح
من تا حالا با پنهان کردن متن توی عکس کار نکردم ولی میشه این کار رو کرد... اگه مطمئنا حروف فارسی فقط استفاده می شه می تونی بیای یه تابع تعریف کنی رنج کد حروف فارسی رو به محدوده 0-255 انتقال بدی و در هنگام بازخوانی هم تو پیکسل مورد نظرت بیاد برعکس تابع رو استفاده کنی... احتمالا بشه

terrorhell
دوشنبه 22 تیر 1394, 12:32 عصر
خب مشکل همینه که هم میتونه حروف فارسی باشه و هم انگلیسی !

محمد رضا فاتحی
دوشنبه 22 تیر 1394, 12:59 عصر
یه کار دیگه....
تو پیکسل x می خوای یه کد حرف بزاری بیای خونه قبلش(x-1) یه عدد چک بزاری مثلا 0 برای انگلیسی 1 برای فارسی اگه صفر بود که هیج اگه یک بود بر گردان کنی