2014-10-02 40 views

回答

1

這不是更多的圖像調整大小的問題嗎?

您的文本指出您可以(通過站點上的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://stackoverflow.com/questions/3529485/loading-a-picture-file-image-from-file-vs-filestream 如果您想要繼續使用您的S3連接的文件流,那麼只需在發送到S3時將調整大小的圖像轉換回文件流。 – Del 2014-10-03 12:36:33

+0

有用的鏈接: http://stackoverflow.com/questions/3529485/loading-a-picture-file-image-fromfile-vs-filestream http://stackoverflow.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