My.Resources.[SomeImage] 返回一个 Image 对象。
您可以使用Image.Save 方法将图像保存到光盘:
Dim destinationPath = Path.Combine(FileFolderOther, "LogoReport.png")
Using myLogo As Bitmap = My.Resources.Logo_Reports
myLogo.Save("d:\testImage.png", ImageFormat.Png)
End Using
File.Exist() 检查仅在出于某种原因不想覆盖同名文件时才需要。如果文件存在,它将被覆盖而不会出错。
Using 语句允许处置由ResourceManager 工厂创建的图像。如果您需要存储该图像,请将其分配给字段/属性并在容器 Form/owner 类关闭/处置时处置它。
您已硬编码图像类型 (.Png)。
也许那是该位图的正确原始格式。如果您不知道资源图像(或任何其他图像)的类型,并且希望保留原始格式,则可以使用 Image.RawFormat.Guid 属性派生用于创建位图的编解码器并确定正确的ImageCodecInfo 将 Guid 与 Codec FormatID 属性进行比较。
我正在添加一个EncoderParameter,将图像质量设置为100%:
Using myLogo As Bitmap = My.Resources.Logo_Reports
Dim codec As ImageCodecInfo = ImageCodecInfo.GetImageEncoders().
FirstOrDefault(Function(enc) enc.FormatID = myLogo.RawFormat.Guid)
' Assunimg codec is not nothing, otherwise abort
Dim fileName = $"LogoReport.{codec.FormatDescription.ToLower()}"
Dim qualityParam As EncoderParameter = New EncoderParameter(ImageCodec.Quality, 100L)
Dim codecParms As EncoderParameters = New EncoderParameters(1)
codecParms.Param(0) = qualityParam
Dim destinationPath = Path.Combine(FileFolderOther, fileName)
myLogo.Save(destinationPath, codec, codecParms)
End Using