0

我的任务是降低网络驱动器的文件/文件夹系统上的图片质量。

代码:

    Dim bmp1 As New Bitmap("U:\Image1.jpg")
    Dim jpgEncoder As ImageCodecInfo = GetEncoder(ImageFormat.Jpeg)
    Dim myEncoder As System.Drawing.Imaging.Encoder = System.Drawing.Imaging.Encoder.Quality
    Dim myEncoderParameters As New EncoderParameters(1)

    Dim myEncoderParameter As New EncoderParameter(myEncoder, 50&)
    myEncoderParameters.Param(0) = myEncoderParameter
    bmp1.Save("U:\Image1.jpg", jpgEncoder, myEncoderParameters)

我收到以下错误:“GDI+ 中出现一般错误”。无论如何要保存而不是复制到另一个文件?

提前致谢!

4

1 回答 1

0

您的代码的第一行锁定文件,直到bmp1被释放。这就是为什么您无法保存到原始路径的原因。

这是我用来从文件加载图像而不实际锁定文件的方式:

    Dim bmp1 As Bitmap
    Using bmpTmp As New Bitmap("U:\Image1.jpg")
        bmp1 = New Bitmap(bmpTmp)
    End Using

使用它,您将能够直接保存到原始文件路径:

    '
    '
    bmp1.Save("U:\Image1.jpg", jpgEncoder, myEncoderParameters)
    bmp1.Dispose()

希望有帮助:)

于 2016-07-11T20:53:32.313 回答