Модераторы: gambit, Kefir, Partizan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> WPF Image to byte_array[] 
:(
    Опции темы
Machaon
  Дата 4.2.2013, 07:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


КаРолЬ АсьКи МуАЛя
*


Профиль
Группа: Участник
Сообщений: 160
Регистрация: 12.8.2008
Где: М.о. Красногорск

Репутация: нет
Всего: 3



Подскажите как можно преобразовать Image в массив байт.

Код

MemoryStream ms = new MemoryStream();
image.Save(ms,System.Drawing.Imaging.ImageFormat.Bmp);


Код выше работает но в моем случае я не могу его использовать так как:

Я использую System.Windows.Control.Image и он конфликтует с System.Drawing, а
именно по этой причине  Image не содержит определения для Save. Весь проект переписывать под
другой класс только из за этого нет смысла (ведь должен быть другой вариант).

Да кстати, картинка находиться в памяти, загрузить с помощью FileStream в массив можно но мне не нужно.

Надеюсь мой вопрос понятен и вы мне поможете.

Спасибо.


PM MAIL ICQ Skype   Вверх
Voucik
Дата 7.5.2013, 16:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 7.5.2013

Репутация: нет
Всего: нет



Я делал так.
Код для отображения картинке в контроле <Image Name="Image1"/>
Код

public ShowImage(Byte[] img, String type)
        {
            InitializeComponent();
            Type = type;
            Img = img;
            if (img == null)
            {
                return;
            }
            var memory = new MemoryStream(img);
            try
            {
                var src = new BitmapImage();
                src.BeginInit();
                src.StreamSource = memory;
                src.CacheOption = BitmapCacheOption.OnLoad;
                src.EndInit();
                Image1.Source = src;
            }
            catch
            {
                
            }
        }


И код сохранения файла

Код

//в верху пропиши юзинг  *************************
using SaveFileD = System.Windows.Forms.SaveFileDialog;
//*********************************************

//Переменная которая содержит в себе массив байт картинки
private Byte[] Img;

private void MenuItem_Click(object sender, RoutedEventArgs e)//по выбору пункта меню "сохранить"
        {
            var Sdialog = new SaveFileD { FileName = "NoName" };
            var resilt = Sdialog.ShowDialog();


            if (resilt == System.Windows.Forms.DialogResult.OK)
            {
                var f = new FileStream(Sdialog.FileName + "." + Type, FileMode.Create);//Type - тип файла "jpg" или чё там у тебя
                try
                {
                    f.Write(Img, 0, Img.Length);
                    MessageBox.Show("Файл был успешно сохранён", "Сообщение", MessageBoxButton.OK, MessageBoxImage.Information);
                }
                catch
                {
                    MessageBox.Show("Произошла ошибка при сохранении файла.", "Ошибка", MessageBoxButton.OK, MessageBoxImage.Error);
                }
                finally
                {
                    f.Close();
                    f.Dispose();
                }
            }

            
        }


Это сообщение отредактировал(а) Voucik - 7.5.2013, 16:29
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | WPF и Silverlight | Следующая тема »


 




[ Время генерации скрипта: 0.0528 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.