积极答复者
VB与缩略图

问题
答案
-
用.net 的Image类的方法GetThumbnailImage 是最简单的制作缩略图的方法
用法:
Public Function GetThumbnailImage( _
ByVal thumbWidth As Integer, _
ByVal thumbHeight As Integer, _
ByVal callback As Image.GetThumbnailImageAbort, _
ByVal callbackData As IntPtr _
) As Image
。参数
- thumbWidth
- 请求的缩略图的宽度(以像素为单位)。
- thumbHeight
- 请求的缩略图的高度(以像素为单位)。
- callback
- 一个 Image.GetThumbnailImageAbort 委托。在 GDI+ 1.0 版中不使用此委托。即便如此,也必须创建一个委托并在该参数中传递对此委托的引用。
- callbackData
- 必须是 IntPtr.Zero。
返回值
用于表示该缩略图的 Image 对象。
备注
如果 Image 对象包含一个嵌入式缩略图像,则此方法会检索嵌入式缩略图,并将其缩放为所需大小。如果 Image 对象不包含嵌入式缩略图像,此方法会通过缩放主图像创建一个缩略图像。
当所请求的缩略图大小约为 120×120 时,GetThumbnailImage 工作正常。如果从一个有嵌入式缩略图的 Image 对象中请求一个较大的缩略图像(比如 300×300),则在缩略图像的质量会有显著的降低。通过调用 DrawImage 缩放主图像(而非嵌入式缩略图),则效果可能较好。
例子:
'定义回调函数
Public Function ThumbnailCallback() As Boolean
return false
End Function'定义处理函数
Public Sub Example_GetThumb(e As PaintEventArgs )
Dim myCallback As New Image.GetThumbnailImageAbort(ThumbnailCallback)
Dim myBitmap As Bitmap = New Bitmap("Climber.jpg")
Dim myThumbnail As Image = myBitmap.GetThumbnailImage(
40, 40, myCallback, IntPtr.Zero)e.Graphics.DrawImage(myThumbnail, 150, 75)
End Sub
全部回复
-
程序块
Dim formImage As System.Drawing.Image = System.Drawing.Image.FromFile(path) '原图
Dim gFormat = formImage .RawFormat '获取图形格式
Dim pwidth As Integer = formImage .Width
Dim pheight As Integer = formImage .Height
Dim toImage As New Bitmap(formImage , NewthumbSize(pwidth, pheight))
imgOutput.Save(strSaveImagePath, gFormat) '保存缩略图文件
myImage.Dispose()
imgOutput.Dispose()
'=======================
'设置图片大小
'=======================
Function ByVal currentwidth, ByVal currentheight)
Dim tempMultiplier As Double
If currentheight > currentwidth Then
tempMultiplier = 100 / currentheight '设置大小
Else
tempMultiplier = 100 / currentwidth
End If
Dim NewSize As New Size(CInt(currentwidth * tempMultiplier), CInt(currentheight * tempMultiplier))
Return NewSize
End Function -
用.net 的Image类的方法GetThumbnailImage 是最简单的制作缩略图的方法
用法:
Public Function GetThumbnailImage( _
ByVal thumbWidth As Integer, _
ByVal thumbHeight As Integer, _
ByVal callback As Image.GetThumbnailImageAbort, _
ByVal callbackData As IntPtr _
) As Image
。参数
- thumbWidth
- 请求的缩略图的宽度(以像素为单位)。
- thumbHeight
- 请求的缩略图的高度(以像素为单位)。
- callback
- 一个 Image.GetThumbnailImageAbort 委托。在 GDI+ 1.0 版中不使用此委托。即便如此,也必须创建一个委托并在该参数中传递对此委托的引用。
- callbackData
- 必须是 IntPtr.Zero。
返回值
用于表示该缩略图的 Image 对象。
备注
如果 Image 对象包含一个嵌入式缩略图像,则此方法会检索嵌入式缩略图,并将其缩放为所需大小。如果 Image 对象不包含嵌入式缩略图像,此方法会通过缩放主图像创建一个缩略图像。
当所请求的缩略图大小约为 120×120 时,GetThumbnailImage 工作正常。如果从一个有嵌入式缩略图的 Image 对象中请求一个较大的缩略图像(比如 300×300),则在缩略图像的质量会有显著的降低。通过调用 DrawImage 缩放主图像(而非嵌入式缩略图),则效果可能较好。
例子:
'定义回调函数
Public Function ThumbnailCallback() As Boolean
return false
End Function'定义处理函数
Public Sub Example_GetThumb(e As PaintEventArgs )
Dim myCallback As New Image.GetThumbnailImageAbort(ThumbnailCallback)
Dim myBitmap As Bitmap = New Bitmap("Climber.jpg")
Dim myThumbnail As Image = myBitmap.GetThumbnailImage(
40, 40, myCallback, IntPtr.Zero)e.Graphics.DrawImage(myThumbnail, 150, 75)
End Sub