2016-10-26 10 views
0

asp.net c#で画像をアップロードする方法について質問があります。 800x800pxのような固定サイズを指定したいそして私は800x800の白い背景の中心にどんなサイズであってもイメージを撮りたいです。私は質問を誤解した場合には、Asp.net C#白い背景の画像をアップロードする

enter image description here

enter image description here

enter image description here

答えて

1

コードでこれを実行したい場合は、かなり多く必要になります。最初に画像をアップロードし、回転を確認しながらサイズを変更します。次に、パディングを適用し、結果を保存または表示します。

public void WriteImage(string path, int width, int height) 
    { 
     Bitmap bmp = new Bitmap(path); 
     float ratio = bmp.Width/bmp.Height; 
     SizeF newsize = new SizeF(width, height * ratio); 
     Bitmap newimage = new Bitmap((int)newsize.Width, (int)newsize.Height); 

     using (var graphics = Graphics.FromImage(newimage)) 
     { 
      graphics.CompositingMode = CompositingMode.SourceCopy; 
      graphics.CompositingQuality = CompositingQuality.HighQuality; 
      graphics.SmoothingMode = SmoothingMode.HighQuality; 
      graphics.InterpolationMode = InterpolationMode.HighQualityBicubic; 
      graphics.PixelOffsetMode = PixelOffsetMode.HighQuality; 

      graphics.DrawImage(bmp, 0, 0, width, height); 
     } 
    } 
+0

これはほぼ達成したいことです。変換後のbase64私はこのbase64変換赤の背景画像とイムを保存する必要があります。あなたの答えは驚くべきことに感謝します。 – mext

+0

あなたは大歓迎です。しかし、後で行うことに応じて、Base64の代わりにバイト配列に変換する方が良いかもしれません。イメージをデータベースまたはファイルシステムに保存する場合は、ファイルをバイトとして保存する方がよいでしょう。 Base64は結果を表示するためのものです。 – VDWWD

1

のように私には、とても残念なコメントを使用することはできません。

.myWhiteBackground{ 
    height: 800px; 
    width: 800px; 
} 

.myImage { 
    position: absolute;  
    top: 50%; 
    left: 50%; 
    transform: translate(-50%, -50%); 
} 

例:私はあなたは、単にプログラムで画像のSRCを変更すると考えている https://jsfiddle.net/ba3sbow6/1/

はあなたのイメージに次のCSSを適用しようとしたことがありますか?

+0

ご返信ありがとうございます。あなたの技術では、ページ上に画像を集中させるだけです。アップロードされた画像サイズを修正するので、これも必要です。私のページが4862x2845の画像を読み込もうとしています。 – mext

+0

申し訳ありませんが、イメージが4862x2845の場合、800px x 800pxの白い背景に収まるように縮小したいと思っていますか? – qqqqq