Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » .NET - [решено] CroppedBitmap. Обрезка изображения.

Ответить
Настройки темы
.NET - [решено] CroppedBitmap. Обрезка изображения.

Новый участник


Сообщения: 12
Благодарности: 1

Профиль | Отправить PM | Цитировать


Здравствуйте. Вот например у меня есть изображение на image. Мне нужно обрезать его часть и вернуть не BitmapSource, а BitmapImage. У меня ничего не получается. Как это можно сделать? Вот несколько осмысленных кусков кода из приложения.
Код: Выделить весь код
//Глобальные переменные в статическом классе
private static BitmapImage bitmapImg;
private static System.Windows.Controls.Image image;
.......

//код из метода
Int32Rect rectangle = new Int32Rect();
//тут манипуляции с rectangle
.......
//и далее обрезание изображения
CroppedBitmap cb = new CroppedBitmap((BitmapSource)image.Source, rectangle); //Обрезаем нужную часть изображения
Image imageCropped = new Image(); 
imageCropped.Source = cb; 
BitmapSource bitmapSource = (BitmapSource)imageCropped.Source; //это я просто пробовал, толку от этой строки нету

Это мне нужно для сохранения изображения в файл таким образом, как видите в качестве параметра тут получаем BitmapImage :

Код: Выделить весь код
    public static class ImageSaver
    {
        public static void SaveInJpeg(BitmapImage bmp, String Path, int Quality)
        {
            FileStream fileStream = new FileStream(Path, FileMode.CreateNew, FileAccess.Write, FileShare.None);
            JpegBitmapEncoder jpgEncoder = new JpegBitmapEncoder();
            jpgEncoder.QualityLevel = Quality;
            jpgEncoder.Frames.Add(BitmapFrame.Create(bmp));
            jpgEncoder.Save(fileStream);
            fileStream.Close();
        }
    }

Отправлено: 17:36, 20-08-2010

 

Новый участник


Сообщения: 12
Благодарности: 1

Профиль | Отправить PM | Цитировать


Нашёл решение:
Код: Выделить весь код
        public static BitmapImage BitmapSourceToBitmapImage(BitmapSource bitmapSource)
        {
            PngBitmapEncoder encoder = new PngBitmapEncoder();
            MemoryStream memoryStream = new MemoryStream();
            BitmapImage bImg = new System.Windows.Media.Imaging.BitmapImage();
 
            encoder.Frames.Add(BitmapFrame.Create(bitmapSource));
            encoder.Save(memoryStream);
                 
            bImg.BeginInit();
            bImg.StreamSource = new MemoryStream(memoryStream.ToArray());
            bImg.EndInit();
 
            memoryStream.Close();
 
            return bImg;
        }

Последний раз редактировалось Casper-SC, 25-08-2010 в 01:03.


Отправлено: 10:23, 21-08-2010 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » .NET - [решено] CroppedBitmap. Обрезка изображения.

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Медиа - Не просматриваются изображения DregoNFire Microsoft Windows Vista 4 14-05-2010 11:40
Обрезка AVI Евгешка Видео и аудио: обработка и кодирование 5 31-03-2008 20:37
Debian/Ubuntu - Настройка изображения. Bren74 Общий по Linux 20 13-02-2008 19:00
Захват изображения Vovchick1 Программирование и базы данных 2 29-05-2005 23:28
Нет изображения Dear Microsoft Windows 95/98/Me (архив) 2 06-10-2003 08:36




 
Переход