Search code examples
wpfimagebitmapimageflowdocument

WPF FlowDocument Displays *Some* Images But Not Others


This is the code I'm using to create the Image that I'm inserting into a FlowDocument.

private static Image GetImage(string url)
{
   if (url == null) throw new ArgumentNullException("url");

   if (!(url.StartsWith("http://") || url.StartsWith("https://") || url.StartsWith("ftp://")))
            return null;

   var uri = new Uri(url, UriKind.Absolute);
   var bmpImg = new BitmapImage(uri)
   {
      CacheOption = BitmapCacheOption.OnDemand,
   };
   if (bmpImg.CanFreeze) bmpImg.Freeze();

   var img = new Image
   {
      Source = bmpImg,
      Stretch = Stretch.Uniform,
      Height = 120,
      Width = 120,
   };

   return img;
}

When I create a document and insert an image from my server with

Designer.CaretPosition.Paragraph.Inlines.Add(image);

everything works fine - image displays as expected. Also, the main Google Logo image works fine, but the HackaDay Logo and others just display a blank image.

What could be the reason for this?


Solution

  • I think that some websites have hotlink protection. For example in my website I can link a photo in every page that it is in my domain and it works well, however if you try to link a photo in other domain, the photo doesn't load.