Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |

07.05.2010, 20:16
|
|
Познающий
Регистрация: 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???
|
|
|

07.05.2010, 22:53
|
|
Познающий
Регистрация: 07.04.2007
Сообщений: 48
Провел на форуме: 199652
Репутация:
8
|
|
Что не у кого нет вариантов почему может происходить ошибка???
|
|
|

08.05.2010, 23:18
|
|
Познающий
Регистрация: 02.08.2008
Сообщений: 55
Провел на форуме: 363117
Репутация:
30
|
|
Есть варианты. выложи весь свой проект. Этот исходник не полный. :-)
|
|
|

09.05.2010, 09:43
|
|
Участник форума
Регистрация: 30.03.2007
Сообщений: 121
Провел на форуме: 188563
Репутация:
52
|
|
A-Spt_N(o), Может проще перед сохранением, удалять предыдущее изображение?
1. Проверил, если файл существует.
2. Удалил.
3. Сохранил.
|
|
|

09.05.2010, 09:52
|
|
Познающий
Регистрация: 07.04.2007
Сообщений: 48
Провел на форуме: 199652
Репутация:
8
|
|
Смысла в этом особого не вижу... ошибка где то здесь должна быть. я выложил два основных метода с которыми может быть связана ошибка...
В остальных участках кода загруженное изображение растягивается, сжимается, уменьшается по процентно и тому подобное.
|
|
|

09.05.2010, 09:55
|
|
Познающий
Регистрация: 07.04.2007
Сообщений: 48
Провел на форуме: 199652
Репутация:
8
|
|
Сообщение от JnK
A-Spt_N(o), Может проще перед сохранением, удалять предыдущее изображение?
1. Проверил, если файл существует.
2. Удалил.
3. Сохранил.
ну в принципе вариант... однако я думаю ты сам понимаешь, что с точки зрения разработки ПО - это не самый лучший вариант
у меня был вариант что ошибка возникает потому, что я пытаюсь писать в ОТКРЫТЫЙ файл... однако насколько я понимаю после загрузки изображения файл закрывается автоматически и не используется.
|
|
|

09.05.2010, 10:02
|
|
Участник форума
Регистрация: 30.03.2007
Сообщений: 121
Провел на форуме: 188563
Репутация:
52
|
|
Возможны проблемы если файл только для чтения?
или он действительно занят другим процессом.
P.s. А попробуй создать 2 файла. Img1 , Img2. Загружаешь Img1 выполняешь действия а сохраняешь в Img2. если произойдет удачно, тогда просто не освобождаешь дескриптор.
|
|
|

09.05.2010, 10:20
|
|
Reservists Of Antichat - Level 6
Регистрация: 12.02.2006
Сообщений: 891
Провел на форуме: 1892597
Репутация:
836
|
|
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...
|
|
|

09.05.2010, 10:33
|
|
Познающий
Регистрация: 07.04.2007
Сообщений: 48
Провел на форуме: 199652
Репутация:
8
|
|
Ошибку свою понял  )) всем кто помог большое спасибо, к репе накинул)
Последний раз редактировалось A-Spt_N(o); 09.05.2010 в 10:37..
|
|
|
|
 |
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|