2017-05-15 7 views
-2

これは繰り返されるかもしれないが、コードはそうではないと思う: 次のコードを使用してjpgカラーからjpgに変換する。& w。 TH eproblemは、私のカラーJPGのサイズが500KBですが、私の変換されたb & w JPGは2.18MBです。この変換のサイズを最適化する方法です。ビットマップを使用して画像をカラーから白黒に変換する - スペースの問題:c#

public void ConvertBlackAndWhiteImage() 
     { 
      System.Drawing.Bitmap originalImage = null; 
      originalImage = new System.Drawing.Bitmap(@"C:\Users\anvesh.veerelli\Pictures\ash 3.jpg"); 
      System.Drawing.Color c; 

      for (int i = 0; i < originalImage.Width; i++) 
      { 
       for (int j = 0; j < originalImage.Height; j++) 
       { 
        c = originalImage.GetPixel(i, j); 
        int r = 0; 
        r = Convert.ToInt16(c.R); 
        int g = 0; 
        g = Convert.ToInt16(c.G); 
        int b = 0; 
        b = Convert.ToInt16(c.B); 
        int ans = (r + g + b)/3; 
        if (ans > 128) 
        { 
          r = 255; 
          g = 255; 
          b = 255; 
        } 
        else 
        { 
          r = 0; 
          g = 0; 
          b = 0; 
        } 
        c = System.Drawing.Color.FromArgb(r, g, b); 
        originalImage.SetPixel(i, j, c); 

       } 
      } 
      string tmpFileName = @"C:\Users\anvesh.veerelli\Pictures\Destination\test.jpg"; 
      originalImage.Save(tmpFileName, System.Drawing.Imaging.ImageFormat.Bmp); 
     } 
+0

あなたはBMPとして保存しています。 – harold

+0

'ImageFormat.jpeg'で保存してみてください –

+0

' System.Drawing.Imaging.ImageFormat.Bmp'として保存するときに 'to b&w jpg'と言うと、 – EpicKip

答えて

2

出力ImageFormatをJpegに変更するだけで済みます。 ファイル名がJPEGの場合でも、画像の内部形式はBMPです。

だからあなたの最後の行は次のようになります。

originalImage.Save("", System.Drawing.Imaging.ImageFormat.Jpeg); 
関連する問題