【问题标题】:Image conversion using for each使用 for each 的图像转换
【发布时间】:2015-07-31 14:08:42
【问题描述】:

我正在尝试使用 VB.Net 将目录中的所有 .png 文件转换为 .ico

   Dim DI As New System.IO.DirectoryInfo(PNGFolderConverter.Text)
        Dim Files As System.IO.FileInfo() = DI.GetFiles("*.png")
        For Each Fl As System.IO.FileInfo In Files
            Dim i As Integer
            i += 1

            Dim SourceImg As Image
            SourceImg = System.Drawing.Image.FromFile(Files)
            SourceImg.Save(PNGSaveDir.Text & "\" & i.ToString & ".ico", ImageFormat.Icon)

        Next

但我无法让它工作......我要么遇到错误,要么只是遇到语法错误。

有人可以帮我吗?

【问题讨论】:

  • 如果您发布收到的错误消息会有所帮助。
  • 特别是使用此代码,我在此行中遇到语法错误:SourceImg = System.Drawing.Image.FromFile(Files)
  • 此语法错误:'System.IO.FileInfo 的一维数组'类型的值无法转换为字符串

标签: vb.net image converter


【解决方案1】:

您需要使用Name property 并使用循环变量Fl 而不是Files

Dim DI As New System.IO.DirectoryInfo(PNGFolderConverter.Text)
Dim Files As System.IO.FileInfo() = DI.GetFiles("*.png")
For Each Fl As System.IO.FileInfo In Files
    Dim i As Integer
    i += 1

    Dim SourceImg As Image
    SourceImg = System.Drawing.Image.FromFile(Fl.Name)
    SourceImg.Save(PNGSaveDir.Text & "\" & i.ToString & ".ico", ImageFormat.Icon)

Next

【讨论】:

  • 我经常收到:FileNotFoundException
  • 设置断点并准确查看您的代码试图查找 png 文件的文件路径。
  • 知道了!我发现了问题:) 我现在会发布带有解决方案的代码。
【解决方案2】:
Dim DI As New System.IO.DirectoryInfo(PNGFolderConverter.Text)
        Dim Files As System.IO.FileInfo() = DI.GetFiles("*.png")
        For Each Fl As System.IO.FileInfo In Files
            Dim i As Integer
            i += 1

            Dim SourceImg As Image
            SourceImg = System.Drawing.Image.FromFile(PNGFolderConverter.Text & "\" & Fl.Name)
            SourceImg.Save(PNGSaveDir.Text & "\" & i.ToString & ".ico", ImageFormat.Icon)

        Next

这行得通。

除了“Fl.Name”之外,我还必须添加保存目录和一个“\”。

【讨论】:

    猜你喜欢
    • 2019-02-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-11
    • 2014-07-21
    • 2023-01-11
    • 2020-09-03
    相关资源
    最近更新 更多