2016-05-13 6 views
0

Ich arbeite mit der App für Windows 10. Ich habe versucht, eine Anwendung für die Bildbearbeitung zu machen.Wie arbeite ich mit LumiaImagingSDK.UWP 3.0 in Windows 10 Mobile App?

var client = new HttpClient(); 
var stream = await client.GetStreamAsync(ImageUrl); 
var source = new StreamImageSource(stream); 
var info = await source.GetInfoAsync(); 

und ich erhalte eine Fehlermeldung in Zeile var source = new StreamImageSource(stream);:

Exception thrown: 'System.IO.FileNotFoundException' in Lumia.Imaging.Managed.dll

Exception thrown: 'System.IO.FileNotFoundException' in mscorlib.ni.dll

RenderImage error: The specified module could not be found. (Exception from HRESULT: 0x8007007E)

Was mache ich falsch? Ich arbeite mit LumiaImagingSDK.UWP 3.0.

+0

Ich kann Ihr Problem nicht reproduzieren, können Sie bitte weitere Einzelheiten angeben? Ich nehme an, dass Sie ein Bild von URL im Internet bekommen, was Sie dann tun möchten? –

+0

Ja. Ich bekomme ein Bild von der URL im Internet. – arsenium

+0

Was möchten Sie dann mit diesem Image mit ImageingSDK tun? –

Antwort

0

Die Formate der StreamImageSource Ctor des Imaging SDK unterstützt: Jpeg Png Gif Bmp WBMP Tiff

Überprüfen Sie, ob Ihre URL eines dieser Bilder Formate korrekt und Punkten.

+0

Ich vermisse SDK-Version in meinem Problem. Ich arbeite mit LumiaImagingSDK.UWP 3.0. In v2.0 funktioniert gut. Wie arbeite ich mit LumiaImagingSDK.UWP 3.0 mit Bild von URL? Ich benutze das Jpeg-Format. – arsenium

0

Wie wir bereits im Kommentar besprochen haben, möchten Sie Bild verwischen, und dort eingebaut ist BlurEffect Class im LumiaImagingSDK.UWP 3.0, habe ich diesen Effekt eine Demo hier schrieb:

<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}"> 
    <Grid.RowDefinitions> 
     <RowDefinition Height="500" /> 
     <RowDefinition Height="50" /> 
    </Grid.RowDefinitions> 
    <Grid Grid.Row="0"> 
     <Grid.ColumnDefinitions> 
      <ColumnDefinition Width="*" /> 
      <ColumnDefinition Width="*" /> 
     </Grid.ColumnDefinitions> 
     <Image x:Name="originalimg" Grid.Column="0" /> 
     <SwapChainPanel x:Name="SwapChainPanelTarget" Grid.Column="1" /> 
    </Grid> 
    <Button Content="Click Me" Click="Button_Click" Grid.Row="1" HorizontalAlignment="Center" /> 
</Grid> 

Code hinter:

private async void Button_Click(object sender, RoutedEventArgs e) 
{ 
    Uri uri = new Uri("xxxx(uri address)"); 
    using (HttpClient client = new HttpClient()) 
    { 
     try 
     { 
      HttpResponseMessage response = await client.GetAsync(uri); 
      if (response != null && response.StatusCode == HttpStatusCode.Ok) 
      { 
       string filename = "test.jpg"; 
       var imageFile = await ApplicationData.Current.LocalFolder.CreateFileAsync(filename, CreationCollisionOption.ReplaceExisting); 
       using (IRandomAccessStream stream = await imageFile.OpenAsync(FileAccessMode.ReadWrite)) 
       { 
        await response.Content.WriteToStreamAsync(stream); 
       } 
       StorageFile file = await ApplicationData.Current.LocalFolder.GetFileAsync(filename); 

       //show original image in the Image control 
       IRandomAccessStream inputStream1 = await file.OpenReadAsync(); 
       BitmapImage bitmap = new BitmapImage(); 
       bitmap.SetSource(inputStream1); 
       originalimg.Source = bitmap; 

       //use the blureffect 
       IRandomAccessStream inputStream = await file.OpenReadAsync(); 
       BlurEffect blureffect = new BlurEffect(); 
       inputStream.Seek(0); 
       blureffect.Source = new Lumia.Imaging.RandomAccessStreamImageSource(inputStream); 
       var render = new SwapChainPanelRenderer(blureffect, SwapChainPanelTarget); 
       await render.RenderAsync(); 
      } 
     } 
     catch 
     { 
     } 
    } 
} 

ich das Bild jedes Mal im lokalen Ordner gespeichert, und ich Windows.Web.Http namespace, nicht System.Net.Http Namespace. Da ich Ihr Problem nicht reproduzieren kann, kann das Bild in Datei gespeichert und der Dateistream hier gelesen werden.