Die einfache Art zu tun, was Sie wollen, ist ein Platzhalterbild mit der gewünschten Größe zu erstellen: zum Beispiel, wenn Sie ein Bild (Breite, Höhe) haben, können Sie erstellen (n * Breite, m * Höhe) und kopieren Sie dann die Pixel .
Wenn Sie es brauchen, sagen Sie mir, ich werde Ihnen mit etwas Code zur Verfügung stellen.
private static Bitmap ResizeBitmap(Bitmap sourceBMP, Int32 widthMultiplier,
Int32 heightMultiplier)
{
var newWidth = sourceBMP.Width * widthMultiplier;
var newHeight = sourceBMP.Height * heightMultiplier;
var result = new Bitmap(newWidth, newHeight);
using (Graphics g = Graphics.FromImage(result))
g.DrawImage(sourceBMP, 0, 0, newWidth, newHeight);
return result;
}
static void Main(string[] args)
{
var widthM = 2;
var heightM = 2;
var image = (Bitmap)Image.FromFile(@"E:\YOUR_IMAGE_HERE.png", true);
var newImage = ResizeBitmap(image, widthM, heightM);
for(var i=0; i<image.Width;++i)
for(var j=0; j<image.Height;++j)
{
var pixelToCopy = image.GetPixel(i, j);
for (var k = 0; k < widthM; ++k)
for (var l = 0; l < heightM; ++l)
newImage.SetPixel(k * image.Width + i,
l * image.Height + j,
pixelToCopy);
}
newImage.Save(@"E:\NEW_BIG_IMAGE_HERE.png", ImageFormat.Png);
}
}
GetPixel und SetPixel sind übrigens langsam. Sie können also wahrscheinlich unsicheren Code übernehmen und Loops damit neu schreiben. Siehe Beispiel unter MSDN
* aber das Bild wird nicht vollständig angezeigt. * Was meinst du damit? Auch, bitte zeigen Sie einige Code, wie es getan – lokusking
@lokusking bedeutet, anstatt 1024 * 2048 Bild anzuzeigen, es zeigt nur 1024 * 1024 Bild nur. Klar, ich werde den Code posten. Bitte gib mir etwas Zeit. – Chatra
Möchten Sie nur das "wiederholte" Bild anzeigen oder möchten Sie es auch speichern? Die Anzeige würde nur mit einem ImageBrush leicht erreicht werden. – Clemens