我要从一张照片剪切一部分图像下来,查了二天的资料没有解决。后来看到下面的地址跟我有一样的问题,解决方法也是从他那里来的。
www.lemongtree.com/zh-cn/item.0000543.aspx
Dim SourceImg As System.Drawing.Image = System.Drawing.Image.FromStream(Me.FileUpload1.PostedFile.InputStream)
Dim SourceImgWidth As Integer = SourceImg.Width '图片的原始Width
Dim SourceImgHeight As Integer = SourceImg.Height '图片的原始Height
Dim bit As New Bitmap(SourceImg)
Dim rec As New Rectangle() '构造一个Rectangle类,一个矩形
rec.Width = 100 'ConfigHelper.UserFaceWidth
rec.Height = 100 'ConfigHelper.UserFaceHeight
If SourceImgWidth > rec.Width Then
rec.X = 20 '(SourceImgWidth - rec.Width) / 2
Else
rec.X = 0
rec.Width = SourceImg.Width
End If
If SourceImgHeight > rec.Height Then
rec.Y = 20 '(SourceImgHeight - rec.Height) / 2
Else
rec.Y = 0
rec.Height = SourceImg.Height
End If
Try
'这里就是把从上传过程中构造的bitmap克隆一份,并按定义好的矩形裁剪
bit.Clone(rec, PixelFormat.DontCare).Save(Response.OutputStream, ImageFormat.Jpeg)
Catch ex As Exception
Context.Response.Write(ex.Message)
Exit Sub
Finally
bit.Dispose()
SourceImg.Dispose()
End Try
Dim SourceImgWidth As Integer = SourceImg.Width '图片的原始Width
Dim SourceImgHeight As Integer = SourceImg.Height '图片的原始Height
Dim bit As New Bitmap(SourceImg)
Dim rec As New Rectangle() '构造一个Rectangle类,一个矩形
rec.Width = 100 'ConfigHelper.UserFaceWidth
rec.Height = 100 'ConfigHelper.UserFaceHeight
If SourceImgWidth > rec.Width Then
rec.X = 20 '(SourceImgWidth - rec.Width) / 2
Else
rec.X = 0
rec.Width = SourceImg.Width
End If
If SourceImgHeight > rec.Height Then
rec.Y = 20 '(SourceImgHeight - rec.Height) / 2
Else
rec.Y = 0
rec.Height = SourceImg.Height
End If
Try
'这里就是把从上传过程中构造的bitmap克隆一份,并按定义好的矩形裁剪
bit.Clone(rec, PixelFormat.DontCare).Save(Response.OutputStream, ImageFormat.Jpeg)
Catch ex As Exception
Context.Response.Write(ex.Message)
Exit Sub
Finally
bit.Dispose()
SourceImg.Dispose()
End Try