【问题标题】:Low quality thumbnails in listview VB.netlistview VB.net 中的低质量缩略图
【发布时间】:2013-11-15 05:23:39
【问题描述】:

我使用 VB.net

我使用 ListView 查看项目左侧的 50*x 个缩略图(.jpg)。

但不是 32 位高质量缩略图,ListView 将它们降低到 8 位或 16 位(不确定)。

这是代码

Private Sub afterprocessed()
    ListView1.Items.Clear()
    Dim imlTemp As New ImageList
    Dim dirFiles() As String = IO.Directory.GetFiles("backend\communicate\thumbnails")
    Dim _imgList As New ImageList
    Dim imgSize As New Size
    imgSize.Width = 50
    ListView1.SmallImageList = _imgList
    Dim count As Integer = 0
    Dim item As New ListViewItem
    For Each dirFile As String In dirFiles
        Dim imgFilename As String = IO.Path.GetFileNameWithoutExtension(dirFile)
        Dim img As New System.Drawing.Bitmap(dirFile)
        Dim imgImage As Image = Image.FromFile(dirFile)
        'Dim imgHeight As Integer
        'imgHeight = imgImage.Height
        imgSize.Height = imgImage.Height
        _imgList.ImageSize = imgSize
        _imgList.Images.Add(img.Clone)
        ListView1.Items.Add(imgFilename, count)
        count += 1
    Next
End Sub

而且质量非常低。与原始 JPG 相比

有什么建议吗?我将不胜感激:D

【问题讨论】:

  • 能发下原版和低画质版的截图吗?

标签: vb.net image listview thumbnails


【解决方案1】:

你需要这个。

this.ListView1.SmallImageList.ColorDepth = ColorDepth.Depth32Bit;

【讨论】:

    【解决方案2】:

    我曾经遇到过类似的问题,我发现它是由使用ImageList.ImageSize 方法引起的,该方法似乎使用了糟糕的调整大小算法。我通过确保我使用的所有图像在加载它们之前在磁盘上已经是正确的大小来解决它。但是,如果这对您来说不是一个选择,那么在将它们添加到 ImageList 之前,resize them 应该不会太难。

    【讨论】:

    • 谢谢!我完全明白你的意思。但是添加时我应该将哪一行更改为 listview *not resize?再次感谢:D
    • 问题不在于ListView,而在于ImageList。在添加之前获取正确大小的图像,这样您就不必使用ImageSize 方法。
    猜你喜欢
    • 2011-10-11
    • 2014-12-24
    • 1970-01-01
    • 2011-10-11
    • 2011-03-24
    • 2011-02-20
    • 2014-12-21
    • 2012-07-27
    相关资源
    最近更新 更多