Какой тип я должен использовать для сохранения изображений с помощью C #? - PullRequest
0 голосов
/ 04 декабря 2009

У меня есть этот класс с именем Hero, который имеет следующие атрибуты. String для букв, int для чисел и т. Д. Что я могу использовать, если я собираюсь сохранить изображение там?

public class Hero
{
    [Hero class's attributes (non-image related]
    public byte[] Portrait { get; set; }
    public byte[] Screenshot { get; set; }
}

Портрет и Скриншот будут в формате .png или .jpg. Должен ли я использовать массив байтов [] для них? Я немного сбит с толку.

LOL, неважно. Я понял свою ошибку. Я должен был использовать System.WINDOWS.Media.Imaging. Пойди разберись.

Ответы [ 5 ]

4 голосов
/ 04 декабря 2009

Я собираюсь использовать их только для того, чтобы показать их в форме WPF.

BitmapImage подходит для приложений на основе XAML, или другой производный класс BitmapSource может быть более подходящим для ваших нужд, в противном случае просто старый Bitmap

2 голосов
/ 04 декабря 2009

Фактический Класс растрового изображения . Я настоятельно рекомендую не использовать для этого массив байтов, так как он может испортиться, и вы потеряете изображение. Если вы сохранили его в растровом объекте, вы можете напрямую передать объект в PictureBox элемент управления и отобразить его на экране.

В дополнение к этому, в отличие от формата BMP, PNG [в предположении] и JPG не сохраняют формат пикселей одинаково или в одном формате. JPG выполняет подгонку модели [внутри блоков] (где он получает часть своих сбережений и теряет информацию) и сохраняет представление модели вместо прямых значений цвета.

1 голос
/ 04 декабря 2009

Как вы собираетесь их использовать? Класс Image может быть более подходящим. Растровое изображение может быть другим хорошим.

EDIT:

Тогда вы захотите использовать BitmapImage . См. Также SO 94456 для использования.

1 голос
/ 04 декабря 2009
0 голосов
/ 04 декабря 2009

Это зависит от:

  1. Если вам нужно манипулировать этим изображением (вращение, масштабирование и т. Д.), Используйте Растровое изображение (или его базовый класс - Изображение ).
  2. Если вы храните его только для передачи изображения клиенту (UI), тогда:
    1. Для веб-приложения используйте массив байтов, чтобы его можно было напрямую отобразить потоку ответов.
    2. Для приложения WPF используйте приложение, которое легко привязать (это может быть BitmapImage , см. связанный вопрос ).
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...