Изменение размера изображения, проблемы с наложением пикселей - PullRequest
0 голосов
/ 15 мая 2018

Я пытаюсь написать функцию, которая может масштабировать изображение вверх и вниз с коэффициентом масштабирования, например, 1,5 или 0,5. При уменьшении изображения изображение будет отображаться на экране правильно, а при увеличении изображения на экране появляется какое-то наложение. Смотрите изображения ниже Scale up

Scale down

Это код, который я написал:

public static void ResizeImage(Bitmap inputImage, double scale)
{
    int maxWidth = (int) (scale * inputImage.Width);
    int maxHeight = (int) (scale * inputImage.Height);


    Bitmap scaledImage = new Bitmap(maxWidth, maxHeight); 
    for(int x = 0; x < inputImage.Width; x++)
    {
        for(int y = 0; y < inputImage.Height; y++)
        {
            //Gets current Pixel
            Color pixel = inputImage.GetPixel(x, y);

            //Calucalte new position Pixel
            int newPixelX = (int) (Math.Floor(x * scale));
            int newPixelY = (int) (Math.Floor(y * scale));

            //Sets pixel in new image
            scaledImage.SetPixel(newPixelX, newPixelY, pixel); 
        }
    }
    DrawImage(Bitmap2colorm(scaledImage)); 
}

Кто-нибудь знает решение этой проблемы и может ли кто-нибудь дать мне объяснение, почему это происходит?

...