用法
public UserControlTester()
{
InitializeComponent();
GetSetPixelsRandom();
}
代码
private void GetSetPixelsRandom()
{
Bitmap img = new Bitmap(@"d:\\downloaded images\\test.gif");
for (int i = 0; i < img.Width; i++)
{
for (int j = 0; j < img.Height; j++)
{
Color pixel = img.GetPixel(i, j);
pixels.Add(pixel);
}
}
Bitmap img1 = new Bitmap(512,512);
for (int i = 0; i < img1.Width; i++)
{
for (int j = 0; j < img1.Height; j++)
{
for (int c = 0; c < pixels.Count; c++)
{
img1.SetPixel(i, j, pixels[c]);
}
}
}
img1.Save(@"d:\\downloaded images\\test3.gif");
}
不确定这是否是正确的方法。使用变量c的内部循环需要很多时间,因为有超过290,000个像素。
1条答案
按热度按时间o0lyfsai1#
假设你想调整图像的大小,这很容易做到。
Bitmap
构造函数内置了缩放功能:如果你不想调整大小,但确实采取随机像素,看看什么在MickyD提到。
请注意,在您提供的示例中,新图像中的每个像素实际上都设置为
pixels
列表中的最后一个像素,因为对于新图像中的每个像素,您都在pixels
中的每个像素上循环。