2011-02-10 5 views
3

У меня есть проект asp.net 2010. Я пишу jpg в файловую систему. Затем я показываю его в элементе управления Image. Затем я использую этот код при нажатии кнопки, чтобы пользователь мог повернуть его на 90 градусов.Как повернуть изображение в .NET?

string path = Server.MapPath(Image1.ImageUrl) ; 

// creating image from the image url 
System.Drawing.Image i = System.Drawing.Image.FromFile(path); 

// rotate Image 90' Degree 
i.RotateFlip(RotateFlipType.Rotate90FlipXY); 

// save it to its actual path 
i.Save(path); 

// release Image File 
i.Dispose(); 

Он вращается (я действительно могу наблюдать, как это происходит в проводнике Windows). Но когда я снова запускаю приложение, и он захватывает файл со своего пути, он по-прежнему отображает его в своей первоначальной форме.

+1

Хит F5, возможно, браузер вытаскивает из CACHE. –

+0

похоже: http://stackoverflow.com/questions/2352804/how-do-i-prevent-clipping-when-rotating-an-image-in-c –

+0

На самом деле, нажав F5, исправьте его. Как я могу исправить это программно? Я попытался перенаправить на ту же страницу, чтобы принудительно обновить, но это не сработало. – NutBar

ответ

0

Попробуйте добавить фиктивный запрос в конец изображения, например «image1.jpv? V = 1». Это помогает предотвратить кеширование таких вещей, как файлы Javascript, и может сделать то же самое для вас.

0

Это классическая проблема с файлами ресурсов с кэшем в браузере. Ответ Alison - один из вариантов. Другой вариант - изменить имя физического файла. Если вы «версии» файлов, то после каждого изменения имя файла будет отличаться. Это означает, что вам придется динамически ссылаться на путь изображения, чтобы вы отображали правильную версию, и вам нужно каким-то образом определить имя файла для текущей версии. Это не позволяет браузеру отображать ранее кэшированный файл сразу после изменения, хотя, поскольку в этот момент это технический файл для браузера.

Если вы используете какой-то источник данных (файлы XML или базу данных) для хранения метаданных для изображений, вы можете добавить столбец «Версия» и сохранить простое целое число. При каждом изменении увеличивайте целочисленное значение и используйте новое значение в имени файла. Вы даже можете продлить это, сохранив предыдущие версии и позволив своим пользователям «отменить» действия, скопировав более старую версию файла в новую версию. Однако это может потребовать более надежной реализации хранилища метаданных.

Смежные вопросы