powered by simpleCommunicator - 2.0.50     © 2025 Programmizd 02
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Невозможно создать объект графики из изображения, имеющего индексированный формат пикселей
23 сообщений из 23, страница 1 из 1
Невозможно создать объект графики из изображения, имеющего индексированный формат пикселей
    #39817147
Eolt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Почему падает говношарп на 7 строке? Пытаюсь впечатать дату в изображение, а оно упирается.


Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
   private void PrintDataInLabel()
        {
            PointF location = new PointF(270, 383);
            Bitmap newBitmap;
            using (var bitmap = (Bitmap)Image.FromFile(Settings.TempLabelPng)) 
            {
                using (Graphics graphics = Graphics.FromImage(bitmap))
                {
                    using (Font arialFont = new Font("Arial", 25))
                    {
                        graphics.DrawString(DateTime.Now.ToString("dd.MM.yyyy"), arialFont, Brushes.Black, location);
                    }
                }
                newBitmap = new Bitmap(bitmap);
            }

            newBitmap.Save(Settings.TempLabelPng); 
            newBitmap.Dispose();
        }
...
Рейтинг: 0 / 0
Невозможно создать объект графики из изображения, имеющего индексированный формат пикселей
    #39817150
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ошибка то какая?
...
Рейтинг: 0 / 0
Невозможно создать объект графики из изображения, имеющего индексированный формат пикселей
    #39817159
Eolt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Roman Mejtes,

Невозможно создать объект графики из изображения, имеющего индексированный формат пикселей
...
Рейтинг: 0 / 0
Невозможно создать объект графики из изображения, имеющего индексированный формат пикселей
    #39817163
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Невозможно создать объект графики из изображения, имеющего индексированный формат пикселей
    #39817169
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Комментарии
Если изображение имеет индексированный формат пикселей, этот метод создает исключение с сообщением, «графический объект невозможно создать из образа, который имеет индексированный формат пикселей.» В следующем списке показаны форматы индексированных пикселей.

Format1bppIndexed

Format4bppIndexed

Format8bppIndexed

Индексированное изображение можно сохранить в другой формат с помощью Save(String, ImageFormat) метод и затем извлекать Graphics объект нового образа.

Этот метод также вызывает исключение, если изображение имеет один из следующих форматов пикселей.

Undefined

DontCare

Format16bppArgb1555

Format16bppGrayScale

Следует всегда вызывать Dispose метод для освобождения Graphics и связанные с ней ресурсы, созданные FromImage метод.
...
Рейтинг: 0 / 0
Невозможно создать объект графики из изображения, имеющего индексированный формат пикселей
    #39817172
Супер_Пав
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EoltПочему падает говношарп
язык не для говнокодеров
...
Рейтинг: 0 / 0
Невозможно создать объект графики из изображения, имеющего индексированный формат пикселей
    #39817192
Eolt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Konst_One,

Ясно, надо тогда так переделать.

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
 private void PrintDataInLabel()
        {
            PointF location = new PointF(270, 383);
            Bitmap newBitmap;
            using (var bitmap = (Bitmap)Image.FromFile(Settings.TempLabelPng))
            {
                var EditableImg = new Bitmap(bitmap);
                using (Graphics graphics = Graphics.FromImage(EditableImg))
                {
                    using (Font arialFont = new Font("Arial", 25))
                    {
                        graphics.DrawString(DateTime.Now.ToString("dd.MM.yyyy"), arialFont, Brushes.Black, location);
                    }
                }
                newBitmap = new Bitmap(EditableImg);
            }
            newBitmap.Save(Settings.TempLabelPng);
            newBitmap.Dispose();
        }
...
Рейтинг: 0 / 0
Невозможно создать объект графики из изображения, имеющего индексированный формат пикселей
    #39817212
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
EoltПочему падает говношарп на 7 строке? Пытаюсь впечатать дату в изображение, а оно упирается.


Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
   private void PrintDataInLabel()
        {
            PointF location = new PointF(270, 383);
            Bitmap newBitmap;
            using (var bitmap = (Bitmap)Image.FromFile(Settings.TempLabelPng)) 
            {
                using (Graphics graphics = Graphics.FromImage(bitmap))
                {
                    using (Font arialFont = new Font("Arial", 25))
                    {
                        graphics.DrawString(DateTime.Now.ToString("dd.MM.yyyy"), arialFont, Brushes.Black, location);
                    }
                }
                newBitmap = new Bitmap(bitmap);
            }

            newBitmap.Save(Settings.TempLabelPng); 
            newBitmap.Dispose();
        }



Я попробовал - у меня все нормально работает.
Что там у вас в Settings.TempLabelPng ?
...
Рейтинг: 0 / 0
Невозможно создать объект графики из изображения, имеющего индексированный формат пикселей
    #39817214
Eolt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cat2,

путь к черно-белому PNG файлу
...
Рейтинг: 0 / 0
Невозможно создать объект графики из изображения, имеющего индексированный формат пикселей
    #39817220
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cat2,

У него формат файла неподдерживаемый.

ТC, я бы создал битмап в памяти, с нужными параметрами, потом отрисовал бы туда твою картинку, потом поверх отрисовал бы текст и все сохранял. Или, другой вариант, создать копию файла с другим форматом и рисовать текст уже туда (собственно, по ссылке, что выше приводили, там даже пример есть).
...
Рейтинг: 0 / 0
Невозможно создать объект графики из изображения, имеющего индексированный формат пикселей
    #39817249
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
fkthatCat2,

У него формат файла неподдерживаемый.

ТC, я бы создал битмап в памяти, с нужными параметрами, потом отрисовал бы туда твою картинку, потом поверх отрисовал бы текст и все сохранял. Или, другой вариант, создать копию файла с другим форматом и рисовать текст уже туда (собственно, по ссылке, что выше приводили, там даже пример есть).

+1. Примерно так

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
private void PrintDataInLabel()
        {
            PointF location = new PointF(10, 10);
            Bitmap newBitmap;
            string SettingsTempLabelPng = @"D:\Pictures\config.png";
            using (var bitmap1 = Image.FromFile(SettingsTempLabelPng))
            {
                MemoryStream ms = new MemoryStream();
                bitmap1.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);
                var bitmap = Image.FromStream(ms);
                using (Graphics graphics = Graphics.FromImage(bitmap))
                {
                    using (Font arialFont = new Font("Arial", 25))
                    {
                        graphics.DrawString(DateTime.Now.ToString("dd.MM.yyyy"), arialFont, Brushes.Black, location);
                    }
                }
                newBitmap = new Bitmap(bitmap);
            }

            newBitmap.Save(SettingsTempLabelPng);
            newBitmap.Dispose();
        }
...
Рейтинг: 0 / 0
Невозможно создать объект графики из изображения, имеющего индексированный формат пикселей
    #39817254
Eolt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cat2,

Проще же к одной строчке свести

Код: c#
1.
 var EditableImg = new Bitmap(bitmap);
...
Рейтинг: 0 / 0
Невозможно создать объект графики из изображения, имеющего индексированный формат пикселей
    #39817281
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
EoltCat2,

Проще же к одной строчке свести

Код: c#
1.
 var EditableImg = new Bitmap(bitmap);


Проще в качестве заготовки взять png 32 разряда
...
Рейтинг: 0 / 0
Невозможно создать объект графики из изображения, имеющего индексированный формат пикселей
    #39817299
Eolt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cat2,

Не могу, мне png другое приложение генерит
...
Рейтинг: 0 / 0
Невозможно создать объект графики из изображения, имеющего индексированный формат пикселей
    #39817704
Eolt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А как увеличить изображение в png по высоте? Имеется этикетка слева, нужно ее сделать более вытянутой, как с права.
...
Рейтинг: 0 / 0
Невозможно создать объект графики из изображения, имеющего индексированный формат пикселей
    #39817711
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Eolt,

Разместить изображение на чистое полотно другого размера?
...
Рейтинг: 0 / 0
Невозможно создать объект графики из изображения, имеющего индексированный формат пикселей
    #39817715
Eolt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt,

Наверное можно. А что более простых вариантов в шарпе нет?
...
Рейтинг: 0 / 0
Невозможно создать объект графики из изображения, имеющего индексированный формат пикселей
    #39817735
Eolt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: c#
1.
2.
3.
4.
5.
6.
     private void TuningPrintSheet(object o, PrintPageEventArgs e)
        {
            Image img  = Image.FromFile(Settings.TempSheetPng);
            Bitmap newImg = new Bitmap(img, new Size(img.Size.Height+ 200,img.Size.Width));
            e.Graphics.DrawImage(newImg, e.PageBounds);
        }



Вот такое не срабатывает. Размер изображения остается прежним
...
Рейтинг: 0 / 0
Невозможно создать объект графики из изображения, имеющего индексированный формат пикселей
    #39817752
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EolthVostt,

Наверное можно. А что более простых вариантов в шарпе нет?

Вот этот умеет: https://imageprocessor.org/
...
Рейтинг: 0 / 0
Невозможно создать объект графики из изображения, имеющего индексированный формат пикселей
    #39817763
Eolt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Короче удалось удлиннить этикетку вот так.

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
        private void TuningPrintSheet(object o, PrintPageEventArgs e)
        {
            var img  = Image.FromFile(Settings.TempSheetPng);
            var copy = new Bitmap(img.Size.Width, img.Size.Height + 40);
            using (Graphics graphics = Graphics.FromImage(copy))
            {
                var imageRectangle = new Rectangle(0, 0, copy.Width, copy.Height);
                graphics.DrawImage(img, imageRectangle, imageRectangle, GraphicsUnit.Pixel);
            }
             e.Graphics.DrawImage(copy, e.PageBounds);
        }
...
Рейтинг: 0 / 0
Невозможно создать объект графики из изображения, имеющего индексированный формат пикселей
    #39817771
Eolt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мдя

Штрихкод не читается:
Код: c#
1.
   var copy = new Bitmap(img.Size.Width, img.Size.Height + 40);



Штрихкод читается:
Код: c#
1.
   var copy = new Bitmap(img.Size.Width, img.Size.Height + 50);
...
Рейтинг: 0 / 0
Невозможно создать объект графики из изображения, имеющего индексированный формат пикселей
    #39818078
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
EoltКороче удалось удлиннить этикетку вот так.

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
        private void TuningPrintSheet(object o, PrintPageEventArgs e)
        {
            var img  = Image.FromFile(Settings.TempSheetPng);
            var copy = new Bitmap(img.Size.Width, img.Size.Height + 40);
            using (Graphics graphics = Graphics.FromImage(copy))
            {
                var imageRectangle = new Rectangle(0, 0, copy.Width, copy.Height);
                graphics.DrawImage(img, imageRectangle, imageRectangle, GraphicsUnit.Pixel);
            }
             e.Graphics.DrawImage(copy, e.PageBounds);
        }


Офигеть. Это Нобелевка, однозначно
...
Рейтинг: 0 / 0
Невозможно создать объект графики из изображения, имеющего индексированный формат пикселей
    #39818107
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EoltКороче удалось удлиннить этикетку вот так.

Ага, разместить на полотне по-больше :)
...
Рейтинг: 0 / 0
23 сообщений из 23, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Невозможно создать объект графики из изображения, имеющего индексированный формат пикселей
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]