Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.11.2011, 11:25   #1
DronLee
Пользователь
 
Регистрация: 08.12.2009
Сообщений: 39
Вопрос Нарезка изображений

Встала задача из одного jpg-файла получить 2, "разрезав" его по-вертикали.
Ничего другого, как по пикселям считывать исходный файл и часть писать в один новый файл, а часть в другой не придумал
Вот:
Код:
private static void CuttingImage(string fileName, string newFileName1, string newFileName2, int verticalSeparator)
        {
            Bitmap image = new Bitmap(fileName);
            ImageFormatConverter img = new ImageFormatConverter();
            Bitmap newImage = new Bitmap(verticalSeparator, image.Height);
            for (int x = 0; x < newImage.Width; x++)
                for (int y = 0; y < newImage.Height; y++)
                    newImage.SetPixel(x, y, image.GetPixel(x, y));
            newImage.Save(newFileName1);
            newImage = new Bitmap(image.Width - verticalSeparator - 1, image.Height);
            for (int x = 0; x < newImage.Width; x++)
                for (int y = 0; y < newImage.Height; y++)
                    newImage.SetPixel(x, y, image.GetPixel(verticalSeparator + x + 1, y));
            newImage.Save(newFileName2);
        }
Работает это всё очень-очень медленно, а файлы надо нарезать тысячами. Подскажите, пожалуйста, как ещё можно это сделать.

Последний раз редактировалось alexBlack; 07.11.2011 в 12:59.
DronLee вне форума Ответить с цитированием
Старый 07.11.2011, 11:38   #2
DronLee
Пользователь
 
Регистрация: 08.12.2009
Сообщений: 39
По умолчанию

Вопрос снимаю Оказалось всё просто, в методе Clone() класса Bitmap можно задавать границы
DronLee вне форума Ответить с цитированием
Старый 07.11.2011, 11:51   #3
DronLee
Пользователь
 
Регистрация: 08.12.2009
Сообщений: 39
По умолчанию

Вот:
private static void CuttingImage(string fileName, string newFileName1, string newFileName2, int verticalSeparator)
{
Bitmap image = new Bitmap(fileName);
Bitmap newImage = image.Clone(new Rectangle(0, 0, verticalSeparator, image.Height), image.PixelFormat);
newImage.Save(newFileName1);
newImage = image.Clone(new Rectangle(verticalSeparator, 0, image.Width - verticalSeparator, image.Height), image.PixelFormat);
newImage.Save(newFileName2);
}
DronLee вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
нарезка xml файла **Татьяна** Общие вопросы Delphi 14 14.10.2011 07:15
"Нарезка" текста kapitel_bc@ukr.net Microsoft Office Word 3 01.05.2010 17:41
Кодирование изображений Constellation Свободное общение 2 11.02.2010 13:00
Нарезка страницы html :) W0LF Общие вопросы Delphi 3 17.12.2009 16:21
Прозрачность изображений MaxiMILLION Мультимедиа в Delphi 7 26.01.2009 23:44