我试图将一个图像的大小调整为5种不同的大小(然后将它们上传到amazonS3)。使用PostedFile.InputStream两次
我使用imageresizer.net
的问题似乎是,我不能使用InputStream的两倍。它第一次运作。当我尝试检索FileUpload1.PostedFile.InputStream
第二次
Dim SmallStream As Stream = New MemoryStream
Dim TinyStream As Stream = New MemoryStream
If FileUpload1.HasFile Then
**ImageResizer.ImageBuilder.Current.Build(FileUpload1.PostedFile.InputStream, SmallStream, New ResizeSettings("maxwidth=100&maxheight=100"))
ImageResizer.ImageBuilder.Current.Build(FileUpload1.PostedFile.InputStream, TinyStream, New ResizeSettings("maxwidth=100&maxheight=100"))**
AmazonUploadFile("SmallImages/" & FileUpload1.FileName, SmallStream)
AmazonUploadFile("TinyImages/" & FileUpload1.FileName, TinyStream)
End If
Public Shared Function GetS3Client() As AmazonS3
Dim appConfig As NameValueCollection = ConfigurationManager.AppSettings
Dim s3Client As AmazonS3 = AWSClientFactory.CreateAmazonS3Client(AWS_ACCESS_KEY, AWS_SECRET_KEY)
Return s3Client
End Function
Public Sub AmazonUploadFile(S3Key As String, FileStream As Stream)
Dim request As New PutObjectRequest()
request.WithBucketName(BUCKET_NAME)
request.WithKey(S3Key).InputStream = FileStream
request.WithCannedACL(S3CannedACL.PublicRead)
GetS3Client.PutObject(request)
End Sub
代码中断。
自己将流读入图像将阻止ImageResizer避免8个相关的陷阱 - 并且您还将失去除多帧TIFF或动画GIF中的第1帧以外的所有内容。请标记我的答案是否正确,以便其他人可以避免与NYSystemsAnalyst的答案有关的问题。 – 2012-04-05 15:58:48