Foxtable(狐表)用户栏目专家坐堂 → [求助]批量处理ListView中的图片


  共有2997人关注过本帖树形打印复制链接

主题:[求助]批量处理ListView中的图片

帅哥哟,离线,有人找我吗?
天一生水
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1137 积分:11224 威望:0 精华:0 注册:2017/9/26 16:30:00
[求助]批量处理ListView中的图片  发帖心情 Post By:2019/10/28 21:25:00 [只看该作者]

如果双击ListView中选择的图片,再点击listbox中的“去灰底”选项,单个处理图片没有问题。
我想鼠标框选或者按住Ctrl选择多个图片后,点击【去灰底】按钮,批量处理多个图片。但按钮代码有问题。
请老师指教。谢谢!


图片点击可在新窗口打开查看此主题相关图片如下:截屏图片.jpg
图片点击可在新窗口打开查看

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:listview测试.rar

引用的dll:
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:dll.rar



[此贴子已经被作者于2019/10/28 21:38:33编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106603 积分:542186 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/10/28 22:11:00 [只看该作者]

按钮

Dim img As Image = GetImage(vr.ImageKey)

改为

Dim img As Bitmap = GetImage(vr.ImageKey)

 回到顶部
帅哥哟,离线,有人找我吗?
天一生水
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1137 积分:11224 威望:0 精华:0 注册:2017/9/26 16:30:00
  发帖心情 Post By:2019/10/28 22:33:00 [只看该作者]

但是没有覆盖旧图片,怎样保存一下?

Dim lvw As WinForm.ListView = e.Form.Controls("ListView1")
Dim vls As String = ""
For Each vr As WinForm.ListViewRow In lvw.SelectedRows
    If vr Is Nothing Then '如果不存在当前行
        Return
    Else
        Dim img As Bitmap = GetImage(vr.ImageKey)
       
        Dim filterg As AForge.Imaging.Filters.Grayscale = New AForge.Imaging.Filters.Grayscale( 0.2125, 0.7154, 0.0721 )    'Plus版更新的代码
        img = filterg.Apply(img )    '把需要去灰底的图片先转换为灰度图像
        Application.DoEvents()
        Dim CloneRect As New Rectangle(0, 0, img.Width, img.Height)
        Dim Oldimage As bitmap = img.Clone(CloneRect, PixelFormat.Format8bppIndexed)  'API文档要求,SobolEdgeDetector过滤器只支持8bpp灰度图像
        Dim NewBitmap As Bitmap
        'Dim t As Date = Date.Now()    '核心代码就只有下面这两行!
        Dim filter As AForge.Imaging.Filters.BradleyLocalThresholding = New AForge.Imaging.Filters.BradleyLocalThresholding ()
        NewBitmap = filter.Apply(Oldimage)
        Application.DoEvents()
        Dim pic As WinForm.PictureBox = e.Form.Controls("图片")
        pic.SizeMode = ImageSizeMode.Zoom
        pic.Image = NewBitmap
    End If
Next

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106603 积分:542186 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/10/28 23:04:00 [只看该作者]

NewBitmap.save("某路径")

 回到顶部
帅哥哟,离线,有人找我吗?
天一生水
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1137 积分:11224 威望:0 精华:0 注册:2017/9/26 16:30:00
  发帖心情 Post By:2019/10/29 8:25:00 [只看该作者]

谢谢老师!

原贴:http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=101287&skin=0

这段代码不能用,现在能用吗?doublerange和rang是什么意思?

百度也没看明白。

 

......

 Case 9         

        'Dim filter As AForge.Imaging.Filters.HSLLinear= New AForge.Imaging.Filters.HSLLinear()  'HSL 水平线性校正,提供亮度和饱和度线性校正功能
        'filter.InLuminance   = new  AForge.Range( 0, 0.85 )  'API文档是DoubleRange,FT中不行,要用Range
        'filter.OutSaturation = new  AForge.Range( 0.25, 1 )
        'filter.ApplyInPlace( bt)
        'Return bt
End Select

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106603 积分:542186 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/10/29 9:07:00 [只看该作者]

第三方的东西,请自行研究。

 回到顶部