Форум программистов, компьютерный форум, киберфорум
C#: Базы данных, ADO.NET
Войти
Регистрация
Восстановить пароль
 
Lord_J
1 / 1 / 2
Регистрация: 24.04.2016
Сообщений: 191
1

Ошибка индексированного изображения sqlce image

26.05.2017, 19:11. Просмотров 404. Ответов 2
Метки нет (Все метки)

Если кто сможет помогите пожалуйста понять найти и устранить ошибку

сохраняю в базу

C#
1
2
3
4
            MemoryStream stream = new MemoryStream();
            img.Image.Save(stream, System.Drawing.Imaging.ImageFormat.Tiff);
            byte[] pic = stream.ToArray();
            command.Parameters.AddWithValue("img1", pic);
вывожу

C#
1
2
3
4
5
6
7
8
  SqlCeDataReader dr = command.ExecuteReader();
            while (dr.Read())
            {
 
                var img = (byte[])dr["img2"];
                var bitmap = new Bitmap(new MemoryStream(img));
                pic1.Image = bitmap;
                save.Image = bitmap;
есть обработчик изображения
в нем выходит ошибка

C#
1
2
3
4
5
                pic1.Image = save.Image.Clone() as Bitmap;
                Graphics g = Graphics.FromImage(pic1.Image);  //////////////// ошибка в этой строчке, помогите пожалуйста 
                                                                                   ////////////////исправить 
                display.Show(qMtiae, g);
                pic1.Invalidate();
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.05.2017, 19:11
Ответы с готовыми решениями:

Ошибка токена SqlCe (Ошибка при разборе запроса)
Помогите пожалуйста разобраться Исходник using System; using System.Collections.Generic;...

Ошибка "data types IMAGE and IMAGE are incompatible in the equal to operator" при обновлении картинки
Получаю текущую аватарку клиента @OldImage (Image тип в базе данных), храню Image в byty массиве,...

Загрузка изображения в Image с сохранении соотношения сторон изображения
загрузка изображения в Image(с фиксированным размером) при этом изображение должно сохранить...

Ошибка "Число индексов меньше числа измерений индексированного массива"
в выделенной строчке в "mas()" происходит ошибка: "Число индексов меньше числа измерений...

2
Storm23
Эксперт .NETАвтор FAQ
9390 / 4592 / 1657
Регистрация: 11.01.2015
Сообщений: 5,793
Записей в блоге: 34
26.05.2017, 20:57 2
Цитата Сообщение от Lord_J Посмотреть сообщение
Ошибка индексированного изображения
Вероятно, ваше изображение является изображением с индексированной палитрой. Такие изображения не поддерживаются в GDI+ (и соответственно Graphics вы не сможете для него создать).
Для рисования на таком изображении его нужно преобразовать в обычное изображение (без палтиры - ARGB32).
Это можно сделать так:
C#
1
2
3
      var newBitmap = new Bitmap(source.Width, source.Height);
      using(var gr = Graphics.FromImage(newBitmap))
           gr.DrawImage(source, 0, 0);
(где source - исходное изображение)
И затем работать с этим изображением (либо изначально делать такое преобразование еще на этапе сохранения в БД).
1
Lord_J
1 / 1 / 2
Регистрация: 24.04.2016
Сообщений: 191
26.05.2017, 22:20  [ТС] 3
Storm23, а могу ли я узнать,,

Почему когда я загружаю ту же самую картинку через OpenFileDialog
C#
1
2
3
4
5
6
7
8
9
OpenFileDialog openflg = new OpenFileDialog();
            if (openflg.ShowDialog() == DialogResult.OK)
            {
                qImage = ImageLoader.LoadImage(openflg.FileName);
               pic1.Image = qImage;
              //  imgg2 = openflg.FileName;
                img2 = openflg.FileName;
 
            }
то в обработчике все работает
C#
1
2
3
4
5
 pic1.Image = save.Image.Clone() as Bitmap;
                Graphics g = Graphics.FromImage(pic1.Image);  
                                                                                   
                display.Show(qMtiae, g);
                pic1.Invalidate();
А когда беру то же самое изображение с базы выдает ошибку
И на счет ошибки вы сказали правельно
Цитата Сообщение от Storm23 Посмотреть сообщение
Вероятно, ваше изображение является изображением с индексированной палитрой.
Добавлено через 43 секунды
Storm23,

Спасибо большое что ответили, сейчас буду пробовать,,,

Добавлено через 42 минуты
Storm23, Спасибо за помощь, все получилось
0
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.05.2017, 22:20

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Ошибка QImage::scaled: Image is a null image
Пишет данную ошибку и выводит серый экран. Что означает эта ошибка и как её исправить?

Вывод изображения в Image
Всем привет! У меня вопрос .. возникла необходимость просматривать картинки из папки в...

Загрузка изображения в Image
C помощью OpenDialog пытаюсь загрузить изображение в Image но выдаёт ошибку Unknow picture file...

Поворот изображения в Image
Необходимо по нажатию на кнопку поворачивать изображение в Image на 180 градусов. Подскажите как...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.