ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > С/С++, C#, Delphi, .NET, Asm
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

Save картинки (C#)
  #1  
Старый 07.05.2010, 20:16
Аватар для A-Spt_N(o)
A-Spt_N(o)
Познающий
Регистрация: 07.04.2007
Сообщений: 48
Провел на форуме:
199652

Репутация: 8
По умолчанию Save картинки (C#)

Закончил программку(курсовой) по работе с изображениями... возникла небольшая проблема с сохранением(с заменой существующего из-ия). Сохранить как - работает, все четко, все отлично... а вот замена, что то не получается....

Вот исходники двух методов (загрузки изображения и пересохранения):

Код:
public void LoadImage()
        {
            openFileDialog.Filter = "Изображение JPG (*.jpg)|*.jpg|" +
                                    "Изображение BMP (*.bmp)|*.bmp|" +
                                    "Изображение PNG (*.png)|*.png";

            DialogResult openResult = openFileDialog.ShowDialog();
            if (openResult == DialogResult.Cancel)
                return;

            fileName = openFileDialog.FileName;
            if (fileName == null || fileName == "")
                MessageBox.Show("Ошибка открытия файла", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
            else
            {
                try
                {
                    viewer = source = Image.FromFile(fileName);

                    if (source.Width >= pictureBox.Width ||
                       source.Height >= pictureBox.Height)
                    {
                        pictureBox.Image = ImageSizeChange(pictureBox.Width, pictureBox.Height);
                    }
                    else
                    {
                        pictureBox.Image = source;
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show("Не удалось загрузить файл: " + ex.Message);
                }
            }

            width_textBox.Text = (source.Width).ToString();
            height_textBox.Text = (source.Height).ToString();
        }

public void SaveImage()
        {
            if (source != viewer)
            {
                try
                {
                    viewer.Save(fileName);
                    MessageBox.Show("Файл сохранен!", "Удачное сохранение", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    //source = Image.FromFile(fileName);
                }
                catch (Exception ex)
                {
                    MessageBox.Show("Не удалось сохранить файл: " + ex.Message);
                }
            }
            else
            {
                MessageBox.Show("Файл не был изменен", "Неудачное сохранение", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
        }
При попытке сохранить срабатывает catch и выдается следующее сообщение - В GDI возникла ошибка общего вида!!!

Пробовал дебажить с Брекпоинтом... переменные заполнены правильно, путь тоже существует, однако сэйф все равно не проходил

У кого нить есть предположения в чем может быть problem???
 
Ответить с цитированием

  #2  
Старый 07.05.2010, 22:53
Аватар для A-Spt_N(o)
A-Spt_N(o)
Познающий
Регистрация: 07.04.2007
Сообщений: 48
Провел на форуме:
199652

Репутация: 8
По умолчанию

Что не у кого нет вариантов почему может происходить ошибка???
 
Ответить с цитированием

  #3  
Старый 08.05.2010, 23:18
Аватар для Juda
Juda
Познающий
Регистрация: 02.08.2008
Сообщений: 55
Провел на форуме:
363117

Репутация: 30
По умолчанию

Есть варианты. выложи весь свой проект. Этот исходник не полный. :-)
 
Ответить с цитированием

  #4  
Старый 09.05.2010, 09:43
Аватар для JnK
JnK
Участник форума
Регистрация: 30.03.2007
Сообщений: 121
Провел на форуме:
188563

Репутация: 52
По умолчанию

A-Spt_N(o), Может проще перед сохранением, удалять предыдущее изображение?

1. Проверил, если файл существует.
2. Удалил.
3. Сохранил.
 
Ответить с цитированием

  #5  
Старый 09.05.2010, 09:52
Аватар для A-Spt_N(o)
A-Spt_N(o)
Познающий
Регистрация: 07.04.2007
Сообщений: 48
Провел на форуме:
199652

Репутация: 8
По умолчанию

Смысла в этом особого не вижу... ошибка где то здесь должна быть. я выложил два основных метода с которыми может быть связана ошибка...

В остальных участках кода загруженное изображение растягивается, сжимается, уменьшается по процентно и тому подобное.
 
Ответить с цитированием

  #6  
Старый 09.05.2010, 09:55
Аватар для A-Spt_N(o)
A-Spt_N(o)
Познающий
Регистрация: 07.04.2007
Сообщений: 48
Провел на форуме:
199652

Репутация: 8
По умолчанию

Цитата:
Сообщение от JnK  
A-Spt_N(o), Может проще перед сохранением, удалять предыдущее изображение?

1. Проверил, если файл существует.
2. Удалил.
3. Сохранил.
ну в принципе вариант... однако я думаю ты сам понимаешь, что с точки зрения разработки ПО - это не самый лучший вариант

у меня был вариант что ошибка возникает потому, что я пытаюсь писать в ОТКРЫТЫЙ файл... однако насколько я понимаю после загрузки изображения файл закрывается автоматически и не используется.
 
Ответить с цитированием

  #7  
Старый 09.05.2010, 10:02
Аватар для JnK
JnK
Участник форума
Регистрация: 30.03.2007
Сообщений: 121
Провел на форуме:
188563

Репутация: 52
По умолчанию

Возможны проблемы если файл только для чтения?
или он действительно занят другим процессом.

P.s. А попробуй создать 2 файла. Img1 , Img2. Загружаешь Img1 выполняешь действия а сохраняешь в Img2. если произойдет удачно, тогда просто не освобождаешь дескриптор.
 
Ответить с цитированием

  #8  
Старый 09.05.2010, 10:20
Аватар для W!z@rD
W!z@rD
Reservists Of Antichat - Level 6
Регистрация: 12.02.2006
Сообщений: 891
Провел на форуме:
1892597

Репутация: 836


Отправить сообщение для W!z@rD с помощью ICQ
По умолчанию

1. http://www.google.ru/search?hl=ru&newwindow=1&ei=plPmS5OyHomnOK-44dsN&sa=X&oi=spell&resnum=0&ct=result&cd=1&ved=0C CAQBSgA&q=%D0%92+GDI%2B+%D0%B2%D0%BE%D0%B7%D0%BD%D 0%B8%D0%BA%D0%BB%D0%B0+%D0%BE%D1%88%D0%B8%D0%B1%D0 %BA%D0%B0+%D0%BE%D0%B1%D1%89%D0%B5%D0%B3%D0%BE+%D0 %B2%D0%B8%D0%B4%D0%B0&spell=1

2. http://www.sql.ru/forum/actualthread.aspx?tid=622774
__________________
*********************************
*Я не волшебник ٩(๏̯͡๏)۶, только учусь...*
*********************************
Программы на заказ
Times to fly...
 
Ответить с цитированием

  #9  
Старый 09.05.2010, 10:33
Аватар для A-Spt_N(o)
A-Spt_N(o)
Познающий
Регистрация: 07.04.2007
Сообщений: 48
Провел на форуме:
199652

Репутация: 8
По умолчанию

Ошибку свою понял)) всем кто помог большое спасибо, к репе накинул)

Последний раз редактировалось A-Spt_N(o); 09.05.2010 в 10:37..
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Где можно достать картинки для авторизаций? Demon1X ПО для Web разработчика 4 01.03.2010 04:53
Картинки на стены групп. DIEZalok Социальные сети 0 05.09.2009 11:46
Вывод картинки .::BARS::. PHP, PERL, MySQL, JavaScript 5 14.12.2008 14:17
Настройка системы мониторинга интерфейсов сети с помощью netmond и rrdtool MicRO *nix 2 13.12.2006 21:38
Ems картинки NIGHT_WOLF Сотовый фрикинг 2 11.01.2006 18:05



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ