0
我正在使用Web浏览器控件生成在ASP.NET中开发的Intranet应用程序的屏幕截图。VB.NET - 图像压缩
屏幕截图被生成,压缩,然后作为BLOB存储在数据库中。当我开发这个工具时,我调查了压缩图像的最佳方式(到最低字节大小),但是图像看起来仍然太大,因为数据库表的增长比我希望的要大。我正在使用TIFF格式,但我现在认为这可能不是最好的,因为它是由摄影师使用的(我假设需要高质量的照片)。下面是对图像进行压缩(之前它被存储为BLOB)代码:
Public Function compressImage() As String
Try
Dim jgpEncoder As ImageCodecInfo = GetEncoder(ImageFormat.Tiff)
'Dim myEncoder As System.Drawing.Imaging.Encoder = System.Drawing.Imaging.Encoder.Quality
Dim myEncoderParameters As New EncoderParameters(1)
Dim myEncoderParameter As New EncoderParameter(System.Drawing.Imaging.Encoder.Compression, CLng(EncoderValue.CompressionCCITT3))
myEncoderParameters.Param(0) = myEncoderParameter
Dim ms As MemoryStream = New MemoryStream()
'bmp1.Save(ms, ImageFormat.Jpeg)
ConvertedImage.Save(ms, ImageFormat.Tiff)
Dim bmpBytes() As Byte
bmpBytes = ms.ToArray()
'ConvertedImage.Dispose()
ms.Close()
ms = Nothing
Catch ex As Exception
MsgBox(ex.ToString())
End Try
End Function
Private Function GetEncoder(ByVal format As ImageFormat) As ImageCodecInfo
Dim codecs As ImageCodecInfo() = ImageCodecInfo.GetImageDecoders()
Dim codec As ImageCodecInfo
For Each codec In codecs
If codec.FormatID = format.Guid Then
Return codec
End If
Next codec
Return Nothing
End Function
是否有一个文件格式/压缩算法,我应该用它来尝试,使文件尽可能小,没有太多sacrifycing质量太多
我已经从数据库中提取了一个BLOB。我将它编码为TIFF。但是,它似乎以任何格式显示在页面上,例如TIFF,JPG等。你知道这可能是为什么吗?我已经为此发布了另一个问题:http://stackoverflow.com/questions/9810012/net-bitmap-object。 – w0051977 2012-03-21 19:43:17