当我尝试使用循环将图像的一部分存储到位图时,我得到System.OutOfMemoryException
。我不认为这是因为图像太大,因为我的代码的另一个版本使用相同图像的多个但没有位图。这是我得到的:
Bitmap map = new Bitmap(img);
for (int i = 0; i < 4; i++) {
for (int y = 0; y < 4; y++) {
// Clone a portion of the Bitmap object.
Rectangle rec = new Rectangle(i*(img.Width / 4),
y*(img.Height / 4),
img.Width,//image width
img.Height);
PixelFormat format = map.PixelFormat;
Bitmap clone = null;
try {
clone = map.Clone(rec, format);
} catch (OutOfMemoryException e)
答案 0 :(得分:3)
这是因为你的矩形边界不在图像中。
我认为你误解了Rectangle
image.Width
{@ 1}}它左上角(第一个和第二个参数)以及矩形的宽度和高度。当您在位图内部设置左上角并提供image.Height
和OutOfMemoryException
作为矩形的宽度和高度时,它肯定会落在位图之外,您将获得@{
Layout = null;
var myObject = ViewData["locations"];
var properties = myObject.GetType().GetProperties();
}