C#: GDI +: OverWriting использование Изображения Сохраняют Метод Битового массива

Моя проблема заключалась в том, что у меня были другие библиотеки, на которые ссылался мой проект, и на эти библиотеки ссылалась другая версия appcompat. Это то, что я сделал, чтобы решить эту проблему:

(Вы должны сделать резервную копию своего проекта, прежде чем делать это)

1) Я удалил все папки макета appcompat (например: / res / layout- V11).

2) Решил возникшие проблемы, обычно ошибка в menu.xml

3) Вернитесь в основной проект и добавьте библиотеку appcompat, очистите, и все работает!

8
задан Shyju 24 June 2009 в 02:04
поделиться

2 ответа

Сначала вам нужно удалить исходный файл. Важно различать - когда вы работаете с изображениями в .NET, вы работаете с объектом в памяти, байты которого были заполнены путем чтения исходного изображения. Вы не работаете с реальным исходным изображением. Поэтому, когда вы собираетесь сохранить этот совершенно новый объект (который использует данные из существующего изображения) и пытаетесь использовать уже используемый путь, вы получите исключение.

Вам также необходимо убедиться, что исходный файл еще не открыт; обязательно удалите исходный файловый поток, который вы использовали для заполнения объекта Image, которым вы управляете. Затем удалите, затем сохраните.

11
ответ дан 5 December 2019 в 05:34
поделиться

Если вы загружаете изображение, используя метод, описанный в следующей строке

 Image imgPhoto = Image.FromFile("myphoto.jpg");

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

Чтобы обойти это, если вы загружаете файл в поток, это позволяет вам перезаписать исходный файл, поскольку дескриптор файла был освобожден, поскольку информация об изображении была записана в память.

Вы можете сделать это в следующим образом:

FileStream fs = new FileStream("myphoto.jpg", FileMode.Open);
Image imgPhoto = Image.FromStream(fs);
fs.Close();
19
ответ дан 5 December 2019 в 05:34
поделиться
Другие вопросы по тегам:

Похожие вопросы: