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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 31.08.2013, 22:54   #1
L6go1as
Форумчанин
 
Регистрация: 20.10.2011
Сообщений: 433
По умолчанию Цикл не работает ?

Подскажите плиз, в чем загвоздка ?

Код:
for (int i = 0; i < 4; i++)
            {
                image = cropImage(image, new Rectangle(i*16, 0, 16, 25));
                image.Save(i + ".bmp");
            }
По задумке, обрезь должна идти каждые 16 пикселей, однако, сохраняет только первый файл.
Если же в настройках прямоугольника указать "0" для Х координат, то все нормально, сохраняется как нужно, все 4 картинки, однако, все одинаковые.
Если в ручную устанавливать значения Х - сохраняет, но только первый файл, однако перемещение прямоугольника происходит.
L6go1as вне форума Ответить с цитированием
Старый 31.08.2013, 22:59   #2
WorldMaster
Старожил
 
Аватар для WorldMaster
 
Регистрация: 25.08.2011
Сообщений: 2,841
По умолчанию

а cropImage самописная или откуда она у вас?
Skype - wmaster_s E-Mail - WorldMasters@gmail.com
Работаем по 3 критериям - быстро, качественно, недорого. Заказчик выбирает любые два.
WorldMaster вне форума Ответить с цитированием
Старый 31.08.2013, 23:02   #3
L6go1as
Форумчанин
 
Регистрация: 20.10.2011
Сообщений: 433
По умолчанию

Самописная, хотя если честно думаю можно в один метод записать ... но так как это не моя, а для примера - решил оставить все как есть.
Код:
private static Image cropImage(Image image, Rectangle imageRectangle)
        {
            Bitmap bitmap = new Bitmap(image);
            Bitmap cropedBitmap = bitmap.Clone(imageRectangle, bitmap.PixelFormat);
            return (Image)(cropedBitmap);
        }
L6go1as вне форума Ответить с цитированием
Старый 31.08.2013, 23:58   #4
L6go1as
Форумчанин
 
Регистрация: 20.10.2011
Сообщений: 433
По умолчанию

Чуть переработал код, как мне кажется, под цикл.
Однако, по не ведомой мне причине, графика не рисует image.

Код:
public void Rettuc()
        {
            Bitmap bitmap = new Bitmap("edimge.bmp");
            Rectangle rect = new Rectangle();
            rect.X = 0;
            rect.Y = 0;
            rect.Width = 16;
            rect.Height = 26;
            
            PixelFormat format = bitmap.PixelFormat;
            
            Bitmap cropedBitmap = bitmap.Clone(rect, format);
            //cropedBitmap.Save("123.bmp");

            Graphics g = Graphics.FromImage(bitmap);
            g.DrawImage(cropedBitmap, 0, 0);
        }
В чем может быть проблема ?
L6go1as вне форума Ответить с цитированием
Старый 01.09.2013, 14:39   #5
WorldMaster
Старожил
 
Аватар для WorldMaster
 
Регистрация: 25.08.2011
Сообщений: 2,841
По умолчанию

Попробовал вашу функцию ... все работает правильно. Вырезает куски как задумаено. Не ясно в чем у вас проблема то возникает?

А в вашем первом посте ошибка в коде.
Вы на вход функции постоянно подаете новую картинку ... а должна подаваться исходная.

Код:
for (int i = 0; i < 4; i++)
            {
                image = cropImage(image, new Rectangle(i*16, 0, 16, 25)); // тут вы изменили image а на следующем цикле подаете сюда же
// после этого в переменной image лежит картинка размером 16 на 25. поэтому следующий шаг цикла не работает                

image.Save(i + ".bmp"); 
            }
Skype - wmaster_s E-Mail - WorldMasters@gmail.com
Работаем по 3 критериям - быстро, качественно, недорого. Заказчик выбирает любые два.

Последний раз редактировалось WorldMaster; 01.09.2013 в 14:44.
WorldMaster вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не работает цикл VASwko Общие вопросы C/C++ 9 23.05.2013 11:45
Не работает цикл -=DeS=- Общие вопросы Delphi 6 17.03.2013 14:45
Цикл не работает Faridik Общие вопросы по Java, Java SE, Kotlin 1 14.08.2011 12:14
Не работает цикл Lisёноk Помощь студентам 5 23.03.2010 21:39
Цикл не работает doniyor Общие вопросы Delphi 1 06.12.2009 15:52