2016-05-10 4 views
0

Я хочу сделать очень упрощенным редактор изображений/изображений. В основном, для редактирования пикселей, но это не кажется актуальным. Чтобы облегчить мое усилие, я решил сохранить размер изображения в 16x16.C# Увеличенное изображение в Picturebox получает обрезанное в левом верхнем углу

Я заполняю форму, добавляю PixelBox и ударяю по умолчанию изображение по умолчанию. Конечно, мне нужно сделать видимыми пиксели, установить интерполяцию в NearestNeighbor.

Затем я растягиваю пиксельный блок на 320x320. И возникает ситуация.

Изображения отображаются следующим образом: Cropped image

Может кто-нибудь пролить некоторый свет на это? Это всего лишь изображение 16x16 с рисунком шахматной доски, который я сделал, но я не могу понять, почему он отображается с этим смещением в левом верхнем углу.

Кроме того, код еще не добавлен. Я предполагаю, что это поведение по умолчанию?

ответ

0

Если вы посмотрите на примеры на странице, где происходит точная ошибка, значит, это ошибка на PixelBox.

Вместо того, чтобы использовать пользовательский элемент управления для данного типа операции просто использовать стандартный PictureBox и масштабировать изображение самостоятельно:

public Bitmap ScaleBitmap(Bitmap src, Size NewSize) 
    { 
     Bitmap bmp = new Bitmap(NewSize.Width, NewSize.Height, src.PixelFormat); 
     Graphics g = Graphics.FromImage(src); 
     g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.NearestNeighbor; 
     g.DrawImage(src, new Rectangle(Point.Empty, NewSize), new Rectangle(0, 0, src.Width, src.Height), GraphicsUnit.Pixel); 
     g.Dispose(); 
     return bmp; 
    } 
+0

Здравствуйте Гусман. Извините за поздний ответ. Спасибо за помощь. Это вроде работы. Смещение все еще происходит. Я буду отмечать ваш ответ, потому что он делает действительные баллы и имеет хорошую информацию. Кажется, изменение размера начинается с середины верхнего левого пикселя ... –