Change dimensions of a picture from byte array

10 באוקטובר 2010

אין תגובות



כיצד לשנות גודל של תמונה המתקבלת כמערך של בתים


נניח שיש לכם HttpHandler שמציג תמונה ממערך בתים, כדי לשנות את גודלו תוכלו בדרך כלל לכתוב קוד כזה




 

<img src="myhandler.ashx?id=5" width="150" />


אבל לפעמים יש מקרים שצריכים לספק את כתובת ה – handler כפרמטר לפונקצייה שאמורה לקבל כתובת של תמונה, במקרים האלו אנחנו צריכים את היכולת לשנות את גודל התמונה בתוך ה – handler.


הקוד הבא יהיה שימושי.




byte[] image = GetImage();


int size;


if (int.TryParse(context.Request["size"], out size))


{


    using (MemoryStream msToRead = new MemoryStream(image))


    {


        Bitmap newImage = new Bitmap(Image.FromStream(msToRead), new Size(size, size));


        using (MemoryStream msToWrite = new MemoryStream())


        {


            newImage.Save(msToWrite, ImageFormat.Jpeg);


            image = new Byte[msToWrite.Length];


            msToWrite.Seek(0, SeekOrigin.Begin);


            msToWrite.Read(image, 0, image.Length);


        }


    }


}


 


 


 


הוסף תגובה
facebook linkedin twitter email

כתיבת תגובה

האימייל לא יוצג באתר. שדות החובה מסומנים *