上传照片然后创建3个不同尺寸的照片并保存到Amazon S3

问题描述:

我在Azure上托管一个网站。我可以上传照片并将其保存到Amazon S3。我很困惑的是如何上传这张照片,从这张照片制作三张不同尺寸的照片,然后将这些照片上传到Amazon S3。上传照片然后创建3个不同尺寸的照片并保存到Amazon S3

这不是更多的图像调整大小的问题吗?

您的文本指出您可以(通过站点上的azure)在Amazon S3上保存图像。正确?

如果是这样,您只需拍摄已上传的图像,调整其大小3次,然后使用您已使用的相同方法提交每幅图像。

我会亲自创建一个单独的方法,您传递一个图像和一些尺寸,并返回一个图像。

然后只需拨打这3次指定不同的大小。

public void SomeMethodName() 
{ 
    Image img = System.Drawing.Image.FromStream(myStream); 
    //Send orig image 
    sendImageToAmazon(img); 

    //Send resized images 
    sendImageToAmazon(ImageResize(img, 1280, 960)); 
    sendImageToAmazon(ImageResize(img, 640, 480)); 
    sendImageToAmazon(ImageResize(img, 320, 240)); 
} 

public void sendImageToAmazon(image img) 
{ 
    //Your current code 
} 


public image ImageResize(image orig, int width, int height) 
{ 
    //Image resizer code. 
} 

在SO上有很多图像调整器代码。例如从文件流的东西在这里Resize an Image C#

图片: - asp.net c# convert filestream to image - Save stream as image

除非我误解你的问题......

+0

感谢您的答复。我从文件流上传1个文件,一旦我做文件流是空的。正因为如此,我唯一能想到的就是上传后从S3中取出并使用它来创建其他尺寸。在切换到Azure之前,我通过使用webimage类并使用文件流来设置它。尽管我有这种方法,但我拥有本地文件系统的优点。现在我不知道。似乎我需要一种将文件流保存在变量中并使用它来创建和发送每个图像的方法。任何更多的帮助将不胜感激。 – user2109468 2014-10-02 21:14:15

+0

所以,如果你只是把你的文件流并将其扔到S3中,你会错过能够在发生之前添加功能。 我会建议采取文件流,然后将其转换为图像/位图,然后您可以使用它进行处理,然后您可以将它发送到您的S3或图像调整器等。 http://*.com/questions/3529485/loading-a-picture-file-image-from-file-vs-filestream 如果您想要继续使用您的S3连接的文件流,那么只需在发送到S3时将调整大小的图像转换回文件流。 – Del 2014-10-03 12:36:33

+0

有用的链接: http://*.com/questions/3529485/loading-a-picture-file-image-fromfile-vs-filestream http://*.com/questions/14979841/c-sharp-convert -image-to-filestream http://social.msdn.microsoft.com/Forums/vstudio/en-US/b3aa9965-9947-4003-b1e1-57353f083e38/how-to-convert-image-files-to-stream http://www.rasteredge.com/how-to/csharp-imaging/convert-image-to-stream/ 希望有所帮助。 – Del 2014-10-03 12:40:17