0
웹 브라우저 컨트롤을 사용하여 ASP.NET에서 개발 한 인트라넷 응용 프로그램의 스크린 샷을 생성하고 있습니다.VB.NET - 이미지 압축
스크린 샷이 생성되고 압축 된 다음 데이터베이스에 BLOB로 저장됩니다. 이 시설을 개발할 때 가장 낮은 바이트 크기로 이미지를 압축하는 최선의 방법을 조사했지만 데이터베이스 테이블이 내가 원하는 것보다 더 커지면서 이미지가 여전히 너무 큰 것처럼 보입니다. 나는 TIFF 형식을 사용하고 있지만 사진가가 사용하는 것처럼 좋지 않을 수도 있습니다. (누가 좋은 품질의 사진을 요구한다고 가정합니다.)
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으로 저장되기 전에) 이미지를 압축하는 코드입니다 많이
데이터베이스에서 BLOB를 추출했습니다. TIFF로 인코딩했습니다. 그러나 TIFF, JPG 등의 형식으로 페이지에 표시되는 것으로 보입니다. 왜 그런지 알 수 있습니까? 나는 이것을 위해 또 다른 질문을 게시했다 : http://stackoverflow.com/questions/9810012/net-bitmap-object. – w0051977