2017-08-30 15 views
1

こんにちは私が四角形に自分のサイトにアップロードした画像を切り抜こうとしています。私はすでにこのウェブサイトに掲載されたいくつかのソリューション、すなわちhttp://stackoverflow.com/questions/5222711/image-resize-in-c-sharp-algorith-to-determine-resize-dimensions-height-and-wiWebImage Crop To Squareを試しました。しかし、これらのソリューションは画像を正方形に変換しますが、画像の上下に大きな透明領域を追加します。これは、これらの画像がプロファイル画像として使用されるため、私が望むものではありません。画像を四角形に切り抜く方法

+0

? – Lamar

+0

@ラマー私の質問は、どのように正方形に画像を切り抜くのでしょうか? – Zaif

答えて

0

これは、私はいつも私のウェブサイトで使用しているコードです:あなたの質問は正確には何

public Bitmap MakeSquarePhoto(Bitmap bmp, int size) 
     { 
      try 
      { 
       Bitmap res = new Bitmap(size, size); 
       Graphics g = Graphics.FromImage(res); 
       g.FillRectangle(new SolidBrush(Color.White), 0, 0, size, size); 
       int t = 0, l = 0; 
       if (bmp.Height > bmp.Width) 
        t = (bmp.Height - bmp.Width)/2; 
       else 
        l = (bmp.Width - bmp.Height)/2; 
       g.DrawImage(bmp, new Rectangle(0, 0, size, size), new Rectangle(l, t, bmp.Width - l * 2, bmp.Height - t * 2), GraphicsUnit.Pixel); 
       return res; 
      } 
      catch { } 
     } 
+0

はい、 "戻り値"を "戻り値"に変更すると機能しました。ありがとうございました。 – Zaif

+0

はい、実際に見れば、私はコード内でそれを変更しました。私の実際のコードはストリームを取得し、それを直接保存します(何も返しません)。あなたの質問に合わせて少し変更しました。私は間違いを犯しました。 –

0

透明度の大きなパッチを上部と下部に追加せずに画像をトリミングするには、側面の一部を切り取らなければなりません。コードを見ることなく、各辺から切り取る(幅 - 高さ)/ 2ピクセルの線に沿ったものでなければなりません。