我正在尝试在ImageList集合上添加图像,但我得到了这个令人讨厌的“Out of Memory”异常。我已经阅读了其他一些有关它的问题,但我不认为我的图像已损坏。图像是单色BMP(用于标签打印机),并且小于1kb。
For Each path As String In Directory.GetFiles("C:\Users\Public\Nitek\Imagens Tratadas")
ImageList1.Images.Add(Image.FromFile(path))
Next
此目录中只有两个图像。有什么我可以做的吗?
编辑: http://i.stack.imgur.com/39RNz.png - 这是其中一张照片。
谢谢:)
答案 0 :(得分:0)
来自:http://msdn.microsoft.com/en-us/library/stf701f5.aspx
托管GDI +具有支持以下文件类型的内置编码器和解码器:
BMP
GIF
JPEG
PNG
TIFF
文件保持锁定状态,直到图像被丢弃。
如果文件没有有效的图像格式,或者GDI +不支持文件的像素格式,则此方法会抛出OutOfMemoryException异常。
你可以尝试以不同的格式保存文件以查看它是否有效(如jpeg)。
答案 1 :(得分:0)
感谢Andrew Morton的贡献,我可以解决这个问题。我必须创建一个条件来在我的ImageList上添加图像。
For Each caminho As String In Directory.GetFiles("C:\Users\Public\Nitek\Imagens")
If Path.GetExtension(caminho) = ".bmp" Then
ImageList1.Images.Add(Image.FromFile(caminho))
End If
Next
使用Path.GetExtension
属性可以覆盖Thumbs.db文件。
谢谢:)