Преобразование bitmap в 16bit - C#

Узнай цену своей работы

Формулировка задачи:

Всем доброго времени суток! Прошу помочь с программой. Как преобразовать BMP картинку в 16 bit? Пробовал с помощью :
public static Bitmap ConvertTo16bpp(Image img)
        {
            var bmp = new Bitmap(img.Width, img.Height, System.Drawing.Imaging.PixelFormat.Format16bppRgb555);
            using (var gr = Graphics.FromImage(bmp))
                gr.DrawImage(img, new Rectangle(0, 0, img.Width, img.Height));
            return bmp;
        }
Картинка не изменяется. Для тех кто не понял:
У меня есть картинка: http://ts02.spac.me/tfil/b510a4f6b6c...jpg?1454251124 Ее нужно преобразовать в: http://cs10.superfiles.me/f/08223823...8b9a6e46/2.png В простом paint-e это делается так: http://ts02.spac.me/tfil/d36eb335d13...jpg?1454251225

Решение задачи: «Преобразование bitmap в 16bit»

textual
Листинг программы
        public static Bitmap ToGrayscale(Bitmap original) {
            var bmp = new Bitmap(original.Width, original.Height);
 
            using (var g = Graphics.FromImage(bmp)) {
                var att = new ImageAttributes();
                att.SetColorMatrix(new ColorMatrix(
                    new[] {
                        new[] {.3f, .3f, .3f, 0, 0},
                        new[] {.59f, .59f, .59f, 0, 0},
                        new[] {.11f, .11f, .11f, 0, 0},
                        new[] {0, 0, 0, 1, 0f},
                        new[] {0, 0, 0, 0, 1f}
                    }
                ));
 
                g.DrawImage(original, new Rectangle(0, 0, original.Width, original.Height), 0, 0, original.Width, original.Height, GraphicsUnit.Pixel, att);
            }
 
            return bmp;
        }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 4.357 из 5