Ваш первый раздел, в котором вы, кажется, записываете последнее использованное число в текстовый файл в IsolatedStorage
, кажется большой работой, чтобы сделать что-то относительно простое. Вы можете заменить весь этот раздел следующим образом:
IsolatedStorageSettings settings = IsolatedStorageSettings.ApplicationSettings;
int imageNumber = 0;
settings.TryGetValue<int>("PreviousImageNumber", out imageNumber);
imageNumber++;
Вы можете сохранить изображение в IsolatedStorage
так:
using (IsolatedStorageFile isf = IsolatedStorageFile.GetUserStoreForApplication())
{
if (!isf.DirectoryExists("Images"))
{
isf.CreateDirectory("Images");
}
IsolatedStorageFileStream fstream = isf.CreateFile(string.Format("Images\\{0}.jpg",imageNumber));
WriteableBitmap wbmp = new WriteableBitmap(image);
Extensions.SaveJpeg(wbmp, fstream, wbmp.PixelWidth, wbmp.PixelHeight, 0, 100);
fstream.Close();
}
Но, возможно, было бы более разумно сохранить изображение в MediaLibrary
, например:
MediaLibrary library = new MediaLibrary();
WriteableBitmap wbmp = new WriteableBitmap(image);
MemoryStream ms = new MemoryStream();
Extensions.SaveJpeg(wbmp, ms, wbmp.PixelWidth, wbmp.PixelHeight, 0, 100);
ms.Seek(0, SeekOrigin.Begin);
library.SavePicture(string.Format("Images\\{0}.jpg",imageNumber), ms);
В любом случае, вы можете затем сохранить imageNumber
обратно в IsolatedStorageSettings
следующим образом:
settings["PreviousImageNumber"] = imageNumber;
settings.Save();
Я предполагал, что image
, использованный выше, был установлен где-то еще в вашем коде. Я не сохранял Canvas в изображение раньше, но некоторые быстрые поиски обнаружили этот блог , где приведен пример с использованием WriteableBitmap, который указывает, что вы можете просто заменить переменную изображения на свой элемент canvas:
WriteableBitmap wbmp = new WriteableBitmap(yourCanvas, null);
В статье также указывается, что фон холста будет игнорироваться и заменяться черным изображением, но вы можете преодолеть это, сначала добавив прямоугольник к холсту с любым фоном, который вы хотите. Опять же, Я не пробовал это . Если это не сработает, вам следует рассмотреть возможность публикации другого вопроса, конкретно связанного с преобразованием Canvas в изображение, поскольку это действительно отдельная проблема по сравнению с первоначальным вопросом о сохранении изображений.