asp.net – 将图像转换为流
发布时间:2020-12-16 07:28:06 所属栏目:asp.Net 来源:网络整理
导读:我正在使用一个上传图像,获取流并使用imageresizer.net调整大小的函数,然后将流上传到Amazon S3. 现在我想拍一张本地照片并将其转换为流. (调整大小并上传到amazonS3).基本上,如何将图像转换为流. 这可能是一个简单的问题,无法在任何地方找到答案. 这是一些
我正在使用一个上传图像,获取流并使用imageresizer.net调整大小的函数,然后将流上传到Amazon S3.
现在我想拍一张本地照片并将其转换为流. (调整大小并上传到amazonS3).基本上,如何将图像转换为流. 这可能是一个简单的问题,无法在任何地方找到答案. 这是一些基本代码. Public Shared Sub MoveToAmazon(strImg As String,SKU As String) Dim fullImg As String = "C:ImageLocation" & strImg Dim img As Image = Image.FromFile(fullImg) 'Here Im missing the code to convert it to a stream. UploadImage(imgStream,SKU) End Sub Public Shared Sub UploadImage(imgStream As Stream,imgName As String) Dim MainStream As Stream = New MemoryStream Dim HomeStream As Stream = New MemoryStream Dim SmallStream As Stream = New MemoryStream Dim TinyStream As Stream = New MemoryStream Dim MidStream As Stream = New MemoryStream Dim GridStream As Stream = New MemoryStream Dim ListStream As Stream = New MemoryStream Dim c As New ImageResizer.Configuration.Config Dim SourceImage As Bitmap = New Bitmap(imgStream) Dim SourceMain As Bitmap = New Bitmap(SourceImage) Dim SourceHome As Bitmap = New Bitmap(SourceImage) Dim SourceSmall As Bitmap = New Bitmap(SourceImage) Dim SourceTiny As Bitmap = New Bitmap(SourceImage) Dim SourceMid As Bitmap = New Bitmap(SourceImage) Dim SourceGrid As Bitmap = New Bitmap(SourceImage) Dim SourceList As Bitmap = New Bitmap(SourceImage) ImageResizer.ImageBuilder.Current.Build(SourceMain,MainStream,New ResizeSettings("width=300&height=372&scale=both&paddingWidth=40")) 'ProductPage ImageResizer.ImageBuilder.Current.Build(SourceHome,HomeStream,New ResizeSettings("width=112&height=147&scale=both")) 'HomePage Products ImageResizer.ImageBuilder.Current.Build(SourceGrid,GridStream,New ResizeSettings("width=149&height=149&scale=both")) 'Categories Grid ImageResizer.ImageBuilder.Current.Build(SourceList,ListStream,New ResizeSettings("width=171&height=206&scale=both")) 'Categories List ImageResizer.ImageBuilder.Current.Build(SourceSmall,SmallStream,New ResizeSettings("width=64&height=75&scale=both")) 'Accessories ImageResizer.ImageBuilder.Current.Build(SourceTiny,TinyStream,New ResizeSettings("width=82&height=82&scale=both")) 'Cart ImageResizer.ImageBuilder.Current.Build(SourceMid,MidStream,New ResizeSettings("width=155&height=116&scale=both")) 'CategoryMain AmazonUploadFile("OriginalImages/" & imgName,imgStream) AmazonUploadFile("MainImages/" & imgName,MainStream) AmazonUploadFile("HomeImages/" & imgName,HomeStream) AmazonUploadFile("GridImages/" & imgName,GridStream) AmazonUploadFile("ListImages/" & imgName,ListStream) AmazonUploadFile("SmallImages/" & imgName,SmallStream) AmazonUploadFile("TinyImages/" & imgName,TinyStream) AmazonUploadFile("MidImages/" & imgName,MidStream) End Sub Public Shared 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 解决方法
以下代码段应该执行您想要的操作:
Using myImage = Image.FromFile(fullImg) Using ms As New MemoryStream() myImage.Save(ms,ImageFormat.Jpeg) ms.Seek(0,SeekOrigin.Begin) UploadImage(ms,SKU) End Using End Using 顺便说一句,您可能会发现在调用方法时更容易参数化并完成所有工作.以下内容可能会让您的生活更轻松(假设您发布的代码是您实际使用的代码,而不是演示): Public Shared Sub UploadImages() 'Call this for each image MoveToAmazon("C:ImageLocationblah.jpg","OriginalImage",300,"whatever") End Sub Public Shared Sub MoveToAmazon(strImg As String,targetFolder As String,height as Integer,width as Integer,padding as Integer,SKU As String) Dim fullImg As String = "" & strImg Using img = Image.FromFile(fullImg) 'Here Im missing the code to convert it to a stream. Using ms As New MemoryStream() Image.Save(ms,ImageFormat.Jpeg) ms.Seek(0,SeekOrigin.Begin) UploadImage(ms,SKU) End Using End Using End Sub Public Shared Sub UploadImage(imgStream As Stream,imgName As String,SKU As String) Dim c As New ImageResizer.Configuration.Config ImageResizer.ImageBuilder.Current.Build(SourceMain,imgStream,New ResizeSettings("width=" & CStr(width) & "&height=" & CStr(height) & "&scale=both&paddingWidth=" & CStr(padding)) AmazonUploadFile(targetFolder & "/" & imgName,imgStream) End Sub Public Shared 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 Using ms As New MemoryStream() Image.Save(ms,ImageFormat.Jpeg) ms.Seek(0,SeekOrigin.Begin) UploadImage(ms,SKU) End Using (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- WinForms和ASP.NET自定义控件的通用代码
- asp.net – Visual Studio无法在IIS中创建网站
- asp.net-mvc – 如何使用MVC中的rout删除url中的控制器名称
- asp.net – 在web.config和asp页面中注册用户控件的优点和缺
- .NET Core技术研究-通过Roslyn代码分析技术规范提升代码质量
- ASP.NET MVC3 Controller或Model中虚拟路径的根相对路径
- asp.net-mvc – NET 3.5 – MVC PetShop应用程序?
- 如何在ASP.NET中将文本框的宽度设置为与MaxLength相同
- 在ASP.NET中生成新的SessionId
- Asp.net复选框和html数据属性
推荐文章
站长推荐
- Asp.net mvc 知多少(三)
- 在asp.net的内容页面中查找母版页内的UnorderedL
- asp.net – FileUpload.hasFile始终为False
- asp.net-mvc – ASP.NET MVC中的通用基本控制器错
- asp.net-mvc-3 – 用于制作直方图的库javascript
- asp.net – HttpMethod和HttpRequest的RequestTy
- 没有aspx文件扩展名的ASP.NET网页
- asp.net – 如何加速Visual Studio Webserver(Ca
- asp.net-mvc – ASP.NET MVC – 从单个控制器动作
- 如何配置ASP.NET OutputCache与http vs https不同
热点阅读