在Form1構造爲什麼圖像爲空?
bitmapwithclouds = new Bitmap(@"D:\C-Sharp\Download File\Downloading-File-Project-Version-012\Downloading File\Resources\test.png");
cleanradar = new Bitmap(Properties.Resources.clean_radar_image);
CloudEnteringAlert.CloudsOnly(bitmapwithclouds, Properties.Resources.clean_radar_image);
pictureBox3.Image = CloudEnteringAlert.newbitmap;
在課堂上CloudEnteringAlert我有方法CloudsOnly:
public static Bitmap CloudsOnly(Bitmap bitmapwithclouds, Bitmap bitmapwithoutclouds)
{
tolerancenumeric = 15;
Color backgroundColor = Color.Black;
int tolerance = tolerancenumeric * tolerancenumeric + tolerancenumeric * tolerancenumeric + tolerancenumeric * tolerancenumeric;
Bitmap newbitmap = new Bitmap(512, 512);
for (int x = 0; x < bitmapwithclouds.Width; x++)
{
for (int y = 0; y < bitmapwithclouds.Height; y++)
{
Color color1 = bitmapwithclouds.GetPixel(x, y);
Color color2 = bitmapwithoutclouds.GetPixel(x, y);
Color color = Color.Black;
int dR = (int)color2.R - (int)color1.R;
int dG = (int)color2.G - (int)color1.G;
int dB = (int)color2.B - (int)color1.B;
int error = dR * dR + dG * dG + dB * dB;
if ((x == 479) && (y == 474))
{
color = Color.Black;
}
if (error < tolerance)
{
color = backgroundColor;
}
else
{
color = color1;
}
newbitmap.SetPixel(x, y, color);
}
}
newbitmap.Save(@"d:\test\newbitmap.jpg");
return newbitmap;
}
In the middle of the method im using getpixel and setpixel.
我用了一個斷點,我看到它這樣做的回報newbitmap經過這麼newbitmap不爲空。
但在上線FOR1:
pictureBox3.Image = CloudEnteringAlert.newbitmap;
的圖像爲null。
在CloudEnteringAlert方法中,我在類的頂部將newbitmap添加爲靜態。 在方法CloudsOnly我爲位圖製作實例。 我將文件保存到硬盤後也會看到該文件。
public static Bitmap newbitmap;
那麼,爲什麼它爲空時,我將它分配給picturebox3?
顯示整個相關代碼而不是描述它。此外,您發佈的代碼不會編譯。 – BartoszKP