как захватить URL-адрес изображения при нажатии и сохранить изображение в изолированном хранилище с помощью silverlight

Я хочу захватить и сохранить в любом контейнере URL-адрес изображения после нажатия на него с веб-сайта, а затем сохранить изображение в изолированном хранилище.

Есть ли кто-нибудь, кто может предоставить коды для этого?

благодаря

1
nl ja de
Спасибо приятель. Я попытаюсь использовать этот код для создания приложения. Мне нужно сначала проанализировать коды, потому что это приложение для Windows-телефона.
добавлено автор Zeuis Umali, источник

1 ответы

Чтобы загрузить изображение, вам нужно получить URI. Как только вы его получите, это довольно просто:

 public class ServiceImageDownloader
{
    private readonly BitmapImage _downloadedBmpImage = new BitmapImage();

    public ServiceImageDownloader()
    {
        _downloadedBmpImage.ImageOpened += DownloadedBmpImageImageOpened;
        _downloadedBmpImage.ImageFailed += DownloadedBmpImageImageFailed;
        _downloadedBmpImage.CreateOptions = BitmapCreateOptions.BackgroundCreation;
    }

    public void DownloadImage(string imageUri)
    {
      _downloadedBmpImage.UriSource = imageUri;
    }

    private void DownloadedBmpImageImageOpened(object sender, RoutedEventArgs e)
    {
        try
        {
            OnImageDownloaded(new WriteableBitmap(_downloadedBmpImage));
        }
        catch
        {
            //manage other classic errors
        }
    }

    private void OnImageDownloaded(WriteableBitmap wbImTemp)
    {
        //here you get your image as a writeableBmp and you can do whatever you wish,
        //as save it in your IS in your example
    }
}

Теперь для IS я предлагаю вам использовать ваше изображение как Stream или как сериализуемый объект. Это может быть что-то вроде этого:

 public bool WriteImage(string imageName, Stream streamImage)
    {
        IsolatedStorageFile store = null;
        Stream stream = null;

        try
        {

            using (store = IsolatedStorageFile.GetUserStoreForSite())
            {                    
               //Open/Create the file for writing
                stream = new IsolatedStorageFileStream(imageName,
                    FileMode.Create, FileAccess.Write, store);

                streamImage.CopyTo(stream);

                stream.Close();
                streamImage.Close();
            }
            return true;

        }
        catch (Exception ie)
        {
           //manage error the way you prefer (think especially to quota management)
        }
    }

Надеюсь, поможет.

0
добавлено
Microsoft Stack Jobs
Microsoft Stack Jobs
1 788 участник(ов)

Work & freelance only Microsoft Stack. Feed https://t.me/Microsoftstackjobsfeed Чат про F#: @Fsharp_chat Чат про C#: @CSharpChat Чат про Xamarin: @xamarin_russia Чат общения:@dotnettalks

Microsoft Developer Community Chat
Microsoft Developer Community Chat
584 участник(ов)

Чат для разработчиков и системных администраторов Microsoft Developer Community. __________ Новостной канал: @msdevru __________ Баним за: оскорбления, мат, рекламу, флуд, флейм, спам, NSFW контент, а также большое количество оффтоп тем. @banofbot