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