Re[3]: Передача изображения по сети
От: TATAPuH США  
Дата: 31.07.08 05:41
Оценка:
Здравствуйте, CastleMaster, Вы писали:

TAT>>ещё варианты, админу постоянно нужен полноцветная картинка ? если нет то можно на клиенте перед отправкой её грейскейлить, обьём передоваемых данных станет заметно меньше.

CM>подскажи как в .NET картинку grayscale. Насколько это будет медленно?

вообще говоря гугл и МСДН рулит

public static Bitmap ToGrayscale(Bitmap original)
{
   //create a blank bitmap the same size as original
   Bitmap newBitmap =
      new Bitmap(original.Width, original.Height);
   
   //get a graphics object from the new image
   Graphics g = Graphics.FromImage(newBitmap);

   //create the grayscale ColorMatrix
   ColorMatrix colorMatrix = new ColorMatrix(
      new float[][]
      {
         new float[] {.3f, .3f, .3f, 0, 0},
         new float[] {.59f, .59f, .59f, 0, 0},
         new float[] {.11f, .11f, .11f, 0, 0},
         new float[] {0, 0, 0, 1, 0},
         new float[] {0, 0, 0, 0, 1}
      });

   //create some image attributes
   ImageAttributes attributes = new ImageAttributes();

   //set the color matrix attribute
   attributes.SetColorMatrix(colorMatrix);

   //draw the original image on the new image
   //using the grayscale color matrix
   g.DrawImage(original,
      new Rectangle(0, 0, original.Width, original.Height),
      0, 0, original.Width, original.Height,
      GraphicsUnit.Pixel, attributes);

   //dispose the Graphics object
   g.Dispose();
   return newBitmap;
}


взято отсюда
http://blog.paranoidferret.com/index.php/2007/08/31/csharp-tutorial-convert-a-color-image-to-greyscale/
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.