Уважаемые знатоки! Не выполняется кубик C# в ZennoPoster, а в ProjectMaker всё ок.

Elfirich

Client
Регистрация
13.11.2018
Сообщения
27
Благодарностей
30
Баллы
13
Всем привет! :df:

Проблемка такая есть кубик "Свой C# код"

берет путь к фото, обрезает со всех сторон по r_N пикселей,заменяя на первоначальный файл:
//берет путь к фото, обрезает со всех сторон по r_N пикселей,заменяя на первоначальный файл
string imagePath = project.Variables["path"].Value;
int left = Convert.ToInt32(project.Variables["r_1"].Value);
int top = Convert.ToInt32(project.Variables["r_2"].Value);
int right = Convert.ToInt32(project.Variables["r_3"].Value);
int bottom = Convert.ToInt32(project.Variables["r_4"].Value);
Image imgNew;

using(Image img = Image.FromFile(imagePath)){
    imgNew = ((Bitmap)img).Clone(new Rectangle(left, top, img.Width - right - left, img.Height - bottom - top),img.PixelFormat);
}
imgNew.Save(imagePath, System.Drawing.Imaging.ImageFormat.Jpeg);

Так вот в проекте всё ок. А вот в ZennoPoster выскакивает ошибка. Не может получить доступ к файлу, в итоге файл удалить даже нельзя без перезагрузки.
Подскажите в чём проблема может быть.
 

Ахилес

Client
Read only
Регистрация
11.11.2020
Сообщения
956
Благодарностей
392
Баллы
63
а нельзя сохранять в тот же файл, который был занят загрузкой Bitmap . Надо в другой объект клонировать Bitmap, удалять старый после using и уже потом новый объект сохранять по старому пути.
для верности еще и dispose... но using вроде должен это делать.... можно и так оставить, если есть вера ему.
 

Elfirich

Client
Регистрация
13.11.2018
Сообщения
27
Благодарностей
30
Баллы
13
а нельзя сохранять в тот же файл, которф
Кубики с наложением водяного знака и изменение размера ошибки не вызывает, хотя тоже заменяется тот же файл или это касается только "кубика в С#" ?
 

Ахилес

Client
Read only
Регистрация
11.11.2020
Сообщения
956
Благодарностей
392
Баллы
63
Кубики с наложением водяного знака и изменение размера ошибки не вызывает, хотя тоже заменяется тот же файл или это касается только "кубика в С#" ?
а какой там код C# ?
 

Elfirich

Client
Регистрация
13.11.2018
Сообщения
27
Благодарностей
30
Баллы
13

Ахилес

Client
Read only
Регистрация
11.11.2020
Сообщения
956
Благодарностей
392
Баллы
63

Elfirich

Client
Регистрация
13.11.2018
Сообщения
27
Благодарностей
30
Баллы
13
ну хороший код, раз обрезает и накладывает водяной знак. :ap: осталось грамотно ликвидировать старые объекты и все.
Изменяется размер и накладывается водяной знак стандартными кубиками в ProjectMaker в настройках стоит "Заменить этот же файл". Обрезка через кубик C# и ошибка вылетает только в нём и только при выполнении в ZennoPoster. В общем нельзя сохранять в этот же файл, только через сохранение в новый, а потом удалять ненужный ?
 

Кто просматривает тему: (Всего: 2, Пользователи: 0, Гости: 2)