我想创建两个将并排的新图像。 如果我有4张图像,那么制作内部有4张图像的新图像。 不是一个在另一个上,而是两个图像一个靠近另一个,或者如果它是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'字符串'不包含'DoubleBitmap'的定义,最好的扩展方法重载'DownloadImages.BitmapExtensions.DoubleBitmap(System.Drawing.Bitmap)'有一些无效的参数
错误2实例参数:无法从'string'转换为'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循环制作它,因为我有更多的雨图像然后sateliite所以我需要合并只有9个图像。
答案 0 :(得分:2)
您可以使用Graphics.FromImage
方法获取Graphics
的{{1}},然后使用该对象的方法在图片上绘制所有内容:
Image