ارسال پاسخ 
 
امتیاز موضوع:
  • 1 رأی - میانگین امتیازات: 5
  • 1
  • 2
  • 3
  • 4
  • 5
نکته های مفید و حرفه ای در سی شارپ C#
12-26-2014, 06:07 AM
ارسال: #8
متدهای پر کربرد در مورد عکس در سی شارپ
متد تبدیل بایت به ایمیج Byte TO Image
کد:
/// <summary>
/// متد تبدیل آرایه ای از بایتها به ایمیج
/// </summary>
/// <param name="Byt_ArrayIn"></param>
/// <returns></returns>
public static Image UDF_ByteArrayToImage(byte[] Byt_ArrayIn)
{
       return Image.FromStream(new MemoryStream(Byt_ArrayIn));
}

متد تبدیل عکس یا فایل به بایت Picture to Byte or File To Byte
کد:
/// <summary>
/// متد تبدیل عکس به بایت
/// </summary>
/// <param name="Str_ImageLocation"></param>
/// <returns></returns>
private static Byte[] UDF_ConvertImageToByte(String Str_ImageLocation)
{
    return System.IO.File.ReadAllBytes(Str_ImageLocation);
}

متد تبدیل ایمیج به بایت Image To Byte
کد:
/// <summary>
/// متد تبدیل ایمیج به بایت
/// </summary>
/// <param name="img"></param>
/// <returns></returns>
public static byte[] UDF_ImageToByte2(Image img)
{
     ImageConverter converter = new ImageConverter();
    return (byte[])converter.ConvertTo(img, typeof(byte[]));
}

یک متد نسبتا بهتر برای خواندن فایل و تبدیل به بایت File To Byte
کد:
public static byte[] UDF_ImageToByte(String filePath)
        {
            byte[] buffer;
            FileStream fileStream = new FileStream(filePath, FileMode.Open, FileAccess.Read);
            try
            {
                int length = (int)fileStream.Length;  // get file length
                buffer = new byte[length];            // create buffer
                int count;                            // actual number of bytes read
                int sum = 0;                          // total number of bytes read

                // read until Read method returns 0 (end of the stream has been reached)
                while ((count = fileStream.Read(buffer, sum, length - sum)) > 0)
                    sum += count;  // sum is a buffer offset for next reading
            }
            finally
            {
                fileStream.Close();
            }
            return buffer;
        }

متدی پر کاربرد که عکس را به صورت بایت دریافت می نماید و آن را به عکس بند انگشتی و یا عکسی با اندازه دلخواه که اندازه به صورت پارامتر ورودی داده می شود تبدیل می نماید.

کد:
public static Bitmap CreateThumbnail(byte[] byteArrayIn, int lnWidth, int lnHeight)
        {
            MemoryStream ms = new MemoryStream(byteArrayIn);
            Image returnImage = Image.FromStream(ms);
            System.Drawing.Bitmap bmpOut = null;
            try
            {
                Bitmap loBMP = new Bitmap(returnImage);
                ImageFormat loFormat = loBMP.RawFormat;
                decimal lnRatio;
                int lnNewWidth = 0;
                int lnNewHeight = 0;

                //*** If the image is smaller than a thumbnail just return it
                if (loBMP.Width < lnWidth && loBMP.Height < lnHeight)
                    return loBMP;

                if (loBMP.Width > loBMP.Height)
                {
                    lnRatio = (decimal)lnWidth / loBMP.Width;
                    lnNewWidth = lnWidth;
                    decimal lnTemp = loBMP.Height * lnRatio;
                    lnNewHeight = (int)lnTemp;
                }
                else
                {
                    lnRatio = (decimal)lnHeight / loBMP.Height;
                    lnNewHeight = lnHeight;
                    decimal lnTemp = loBMP.Width * lnRatio;
                    lnNewWidth = (int)lnTemp;
                }
                bmpOut = new Bitmap(lnNewWidth, lnNewHeight);
                Graphics g = Graphics.FromImage(bmpOut);
                g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic;
                //g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBilinear;
                g.CompositingQuality = System.Drawing.Drawing2D.CompositingQuality.HighQuality;
                g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
                g.PixelOffsetMode = System.Drawing.Drawing2D.PixelOffsetMode.HighQuality;
                g.FillRectangle(Brushes.White, 0, 0, lnNewWidth, lnNewHeight);
                g.DrawImage(loBMP, 0, 0, lnNewWidth, lnNewHeight);

                loBMP.Dispose();
            }
            catch
            {
                return null;
            }

            return bmpOut;
        }


==================================================
طراحی وب سایت
پروژه های برنامه نویسی تجاری
دانلود پروژه های ASP.NET وب سایتهای آماده به همراه توضیحات
دانلود پروژه های سی شارپ و پایگاه داده SQL Server همراه توضیحات و مستندات
دانلود پروژه های UML نمودار Usecase نمودار class نمودرا activity نمودار state chart نمودار DFD و . . .
دانلود پروژه های حرفه ای پایگاه داده SQL Server به همراه مستندات و توضیحات
پروژه های حرفه ای پایگاه داده Microsoft access به همراه مستندات و توضیحات
دانلود پروژه های کارآفرینی
دانلود گزارشهای کارآموزی کارورزی تمامی رشته های دانشگاهی
قالب تمپلیت های آماده وب سایت ASP.NET به همراه Master page و دیتابیس
برنامه های ایجاد گالری عکس آنلاین با ASP.NET و JQuery و اسلایدشو به همراه کد و دیتابیس SQL کاملا Open Source واکنشگرا و ساده به همراه پایگاه داده
==================================================
یافتن تمامی ارسال‌های این کاربر
نقل قول این ارسال در یک پاسخ
ارسال پاسخ 


پیام‌های داخل این موضوع
متدهای پر کربرد در مورد عکس در سی شارپ - ali - 12-26-2014 06:07 AM

پرش به انجمن:


کاربرانِ درحال بازدید از این موضوع: 1 مهمان