0

現在、アップロードが完了したときにプレビューとして表示するために、画像のサイズをサムネイルに変更しようとしています。画像のアップロード部分に fineuploader プラグインを使用しています。私は一貫して「パラメータが無効です」というメッセージを受け取り続けています。これに関連する多くの投稿を見て、ほとんどの解決策を試しましたが、成功しませんでした。コードのスニペットは次のとおりです。

    public static byte[] CreateThumbnail(byte[] PassedImage, int LargestSide)  
    {  
        byte[] ReturnedThumbnail = null;  

        using (MemoryStream StartMemoryStream = new MemoryStream(),  
                            NewMemoryStream = new MemoryStream())  
        {  
            StartMemoryStream.Write(PassedImage, 0, PassedImage.Length); //error being fire in this line 

            System.Drawing.Bitmap startBitmap = new Bitmap(StartMemoryStream);  

            int newHeight;  
            int newWidth;  
            double HW_ratio;  
            if (startBitmap.Height > startBitmap.Width)  
            {  
                newHeight = LargestSide;  
                HW_ratio = (double)((double)LargestSide / (double)startBitmap.Height);  
                newWidth = (int)(HW_ratio * (double)startBitmap.Width);  
            }  
            else 
            {  
                newWidth = LargestSide;  
                HW_ratio = (double)((double)LargestSide / (double)startBitmap.Width);  
                newHeight = (int)(HW_ratio * (double)startBitmap.Height);  
            }  

            System.Drawing.Bitmap newBitmap = new Bitmap(newWidth, newHeight);  

            newBitmap = ResizeImage(startBitmap, newWidth, newHeight);  

            newBitmap.Save(NewMemoryStream, System.Drawing.Imaging.ImageFormat.Jpeg);  

            ReturnedThumbnail = NewMemoryStream.ToArray(); 
        }  

        return ReturnedThumbnail;  
    }  

私はアイデアがありません。どんな助けも大歓迎です。

4

2 に答える 2

0

エラーは上のnew Bitmap(startMemoryStream)行ではなく、行にあります。

ドキュメントには、次の場合にこの例外が発生する可能性があると記載されています。

ストリームに画像データが含まれていないか、null です。

-また-

ストリームには、1 次元が 65,535 ピクセルを超える PNG 画像ファイルが含まれています。

そこに有効な PNG ファイルがあることを確認する必要があります。たとえば、ファイルに書き込んで、画像ビューアーで開いてみてください。

于 2013-02-20T16:40:15.070 に答える