使用 for each 的图像转换

Image conversion using for each

我正在尝试使用 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

但我无法让它工作...我遇到了错误或语法错误。

有人可以帮我吗?

您需要使用 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
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"我还必须添加保存目录和一个“\”。