我想创建两个将并排的新图像。如果我有 4 张图片,那么可以在里面制作 4 张图片的新图片。不是一个在另一个上,而是 2 个图像,一个靠近另一个,或者如果它是 4 个图像,那么每个图像也靠近另一个。
到目前为止我所做的是从两个图像中获取像素:
private void GetPixels(string File1, string File2)
{
Bitmap bmp1 = new Bitmap(File1);
Bitmap bmp2 = new Bitmap(File2);
for (int i = 0; i < bmp1.Width; i++)
{
for (int j = 0; j < bmp1.Height; j++)
{
Color pixel = bmp1.GetPixel(i, j);
}
}
for (int x = 0; x < bmp2.Width; x++)
{
for (int y = 0; y < bmp2.Height; y++)
{
Color pixel = bmp1.GetPixel(x, y);
}
}
}
我想创建一个新的位图,它的大小足以存储另外两个位图。我如何计算新位图的正确大小,以便它包含另外两个位图?
以及如何将像素添加到新位图中?
编辑**
将其添加到命名空间下的 Form1 的顶层,就可以了。现在我尝试像这样使用它:
private void CreateNewImage()
{
for (int i = 0; i < imagesRainUrls.Count; i++)
{
//Use it
//Double the same image
Bitmap doubledBitmap = imagesRainUrls[i].DoubleBitmap();
//Append new image
Bitmap appendedBitmap = imagesRainUrls.AppendBitmap(imagesSatelliteUrls[i]);
}
}
imagesRainUrls 是图像列表,imagesSatelliteUrls 是图像列表。
我得到的错误:
错误 1 'string' 不包含 'DoubleBitmap' 的定义,并且最佳扩展方法重载 'DownloadImages.BitmapExtensions.DoubleBitmap(System.Drawing.Bitmap)' 有一些无效参数
错误 2 实例参数:无法从“字符串”转换为“System.Drawing.Bitmap”
错误 3 'System.Collections.Generic.List' 不包含 'AppendBitmap' 的定义,并且最佳扩展方法重载 'DownloadImages.BitmapExtensions.AppendBitmap(System.Drawing.Bitmap, System.Drawing.Bitmap)' 有一些无效参数
错误 4 实例参数:无法从“System.Collections.Generic.List”转换为“System.Drawing.Bitmap”
错误 5 参数 2:无法从 'string' 转换为 'System.Drawing.Bitmap'
而且我在 imagesRainUrls 列表中还有更多图像,然后是 SatelliteUrls 列表,所以我怎样才能让它合并两个图像,直到 SatelliteUrls 图像的数量?雨图像我有 62 和卫星只有 9 在这个过程的最后,我将从所有合并的 gif 和未合并的 gif 中制作动画 gif。所以动画将是一个 gif,前 9 个图像合并,其余的 Rain 不会合并,而是相同的动画。
那么我如何使用 FOR 循环来实现它,因为我有更多的雨图像然后是卫星,所以我只需要合并 9 个图像。