修改图片象素颜色出错,求教

letmedie 2005-10-18 10:09:25
程序如下,波浪线部分的出错提示是

“未处理的“System.ArgumentException”类型的异常出现在 system.drawing.dll 中

其他信息:使用了无效参数。

如何解决?


Dim bmpb As Bitmap
Dim bmpe As Bitmap
Dim bmpheght As Integer
Dim bmpw As Integer
Dim i, k, l As Integer
Dim cloAs
Dim a
bmpb = PictureBox1.Image.Clone
bmpe = PictureBox2.Image.Clone
For l = 0 To 6
'bmpb = bmpe
bmpheght = CType(bmpb.Height, Integer) '获得图片的高
bmpw = CType(bmpb.Width, Integer) '获得图片的宽
Button1.Text = bmpw '显示图片的宽
For i = 0 To bmpw - 1
For k = 0 To bmpheght - 1
cloAs = bmpb.GetPixel(i, k)
'获得象素点的颜色,返回颜色的16制代码
bmpe.SetPixel(i, k, cloAs)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Next
Next

Next
...全文
108 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
letmedie 2005-10-19
  • 打赏
  • 举报
回复
一个是color类,一个是数值类,如何转换?


所以才要问大家怎么处理嘛……
要是知道怎么转换我就不用问了……
sz_lgp 2005-10-18
  • 打赏
  • 举报
回复
Dim i As Integer
Dim j As Integer
Dim g1 As Graphics = PictureBox1.CreateGraphics
Dim mbitmap As New Bitmap(255, 255, g1)

For i = 0 To 250
For j = 0 To 250

mbitmap.SetPixel(i, j, Color.FromArgb(i, j, 21))


Next
Stop
Next

PictureBox1.Image = mbitmap

好象要用Graphics才能使SetPixel(i, j, Color)有效。上面的例子你可以试试,是可执行的。
cvman 2005-10-18
  • 打赏
  • 举报
回复
一个是color类,一个是数值类,如何转换?
letmedie 2005-10-18
  • 打赏
  • 举报
回复
to:: sz_lgp(longguoping) ( ) 信誉:100
你的程序是可以运行,不过不太适合我的做法。你的颜色是固定一种,而我的要求是从另一幅图片中取出来,也就是取出来的十六进制的,例如红色是"ffff0000",我没办法将这个"ffff0000"放到
bmpe.SetPixel(i, k, cloAs)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
中,老是说我强制转换无效或者使用了无效参数。

没办法啊没办法
就差这一点点……
letmedie 2005-10-18
  • 打赏
  • 举报
回复
我还没将打乱的算法加进去。
在我想设置回去的时候就出错了
就是下面这句
bmpe.SetPixel(i, k, cloAs)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
hamadou 2005-10-18
  • 打赏
  • 举报
回复
你这样不是取得后又给设置回去了吗?
letmedie 2005-10-18
  • 打赏
  • 举报
回复
我是想将一个图片的象素打乱,存成另一幅图片。
目标就是这么简单……
淡蓝色2 2005-10-18
  • 打赏
  • 举报
回复
你的代码没有问题
先说说你的目的

16,554

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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