GDI+关于图片宽度的一个小问题

lonelydreamsym 2005-02-19 10:13:18
代码如下:
System.Drawing.Bitmap bmp = new Bitmap(Server.MapPath("aa.jpg"));

for (int num1 = 0; num1 < bmp.Height; num1++)
{
for (int num2 = 0; num2 < bmp.Width; num2 = num2 + 2)
{
bmp.SetPixel(num2,num1,System.Drawing.Color.Black);
}
num1 = num1 + 1;
for (int num3 = 1; num3 < bmp.Width; num3 = num3 + 2)
{
bmp.SetPixel(num3,num1,System.Drawing.Color.Black);//这里是出错的地方

}
}
bmp.Save(this.Response.OutputStream,System.Drawing.Imaging.ImageFormat.Jpeg);
上面的代码,编译时可以正常通过,但打开页面时,系统提示:“使用了无效参数”就是代码上标记的地方出错,我用断点根踪num3的值时发现,它总在最后一次循环提示"num3值无效",也就是,在执行它下面的代码bmp.SetPixel(num3,num1,...)时最后一次循环时num3是一个无效的图片x值,可为什么呢,我把"int num3 = 1; num3 < bmp.Width; num3 = num3 + 2"中的“bmp.Width”换成一个具体小于图片宽度的实际值,10,错误依旧,依然是最后一次循环时出错,而实际用的图片宽度是350,郁闷了,搞不清怎么回事,可为什么前面类拟的代码就可以执行呢,就是num2,num1的就是正常的。
...全文
104 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
lonelydreamsym 2005-02-20
  • 打赏
  • 举报
回复
我知道,可我就是要隔点设置颜色的,我把num3 < bmp.Width换成一个具体的小于bmp.width的数字也不行,如num3 < 50,系统仍会出现同样错误,为什么??
Seeko0 2005-02-20
  • 打赏
  • 举报
回复
//使用 SetPixel是设置每个相素的颜色,num3 =num3+2 超界,也就是说在num2 = num2 + 2也是错的
//应该为 num3++ ; num2++


for (int num3 = 1; num3 < bmp.Width; num3 ++)
{
bmp.SetPixel(num3,num1,System.Drawing.Color.Black);//这里是出错的地方

}
lonelydreamsym 2005-02-19
  • 打赏
  • 举报
回复
没人回,自己顶一下
athossmth 2005-02-19
  • 打赏
  • 举报
回复
height是一个奇数吧?呵呵,行越界了

62,243

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧