دلتنگ اسمان
پنج شنبه 13 دی 1397, 20:24 عصر
اساتید عزیز سلام
تصویری داریم که ابعاد و فرمت آن مشخص نیست.و تصویر با نرم افزارهای معمولی نمایش داده نمیشود.
آیا میشه طبق کد زیر وقتی به ارایه ای از بایتها تبدیل میکنیم بتونیم ابعاد و فرمت آن تصویر رو بدست بیاریم؟
یعنی در داخل این آرایه ابعاد و فرمت تصویر هم وجود داره؟ یا به عبارتی شماره ارایه خاصی برای چنین مواردی وجود داره؟
و آیا میشه این ارایه را به یک تصویر تبدیل کنیم؟
راستش من نتونستم و خطا داد.
تبدیل به ارایه ای از بایتها :
byte[] buff = System.IO.File.ReadAllBytes(op.FileName);
سعی در ساخت تصویر. البته در کد زیر ما خودمان ابعاد تصویر رو مشخص میکنیم!:
public Bitmap CopyDataToBitmap(byte[] data)
{
//Here create the Bitmap to the know height, width and format
Bitmap bmp = new Bitmap(352, 288, PixelFormat.Format24bppRgb);
//Create a BitmapData and Lock all pixels to be written
BitmapData bmpData = bmp.LockBits(
new Rectangle(0, 0, bmp.Width, bmp.Height),
ImageLockMode.WriteOnly, bmp.PixelFormat);
//Copy the data from the byte array into BitmapData.Scan0
Marshal.Copy(data, 0, bmpData.Scan0, data.Length);
//Unlock the pixels
bmp.UnlockBits(bmpData);
//Return the bitmap
return bmp;
}
با تشکر
تصویری داریم که ابعاد و فرمت آن مشخص نیست.و تصویر با نرم افزارهای معمولی نمایش داده نمیشود.
آیا میشه طبق کد زیر وقتی به ارایه ای از بایتها تبدیل میکنیم بتونیم ابعاد و فرمت آن تصویر رو بدست بیاریم؟
یعنی در داخل این آرایه ابعاد و فرمت تصویر هم وجود داره؟ یا به عبارتی شماره ارایه خاصی برای چنین مواردی وجود داره؟
و آیا میشه این ارایه را به یک تصویر تبدیل کنیم؟
راستش من نتونستم و خطا داد.
تبدیل به ارایه ای از بایتها :
byte[] buff = System.IO.File.ReadAllBytes(op.FileName);
سعی در ساخت تصویر. البته در کد زیر ما خودمان ابعاد تصویر رو مشخص میکنیم!:
public Bitmap CopyDataToBitmap(byte[] data)
{
//Here create the Bitmap to the know height, width and format
Bitmap bmp = new Bitmap(352, 288, PixelFormat.Format24bppRgb);
//Create a BitmapData and Lock all pixels to be written
BitmapData bmpData = bmp.LockBits(
new Rectangle(0, 0, bmp.Width, bmp.Height),
ImageLockMode.WriteOnly, bmp.PixelFormat);
//Copy the data from the byte array into BitmapData.Scan0
Marshal.Copy(data, 0, bmpData.Scan0, data.Length);
//Unlock the pixels
bmp.UnlockBits(bmpData);
//Return the bitmap
return bmp;
}
با تشکر