ThinkGeo.com    |     Documentation    |     Premium Support

Problem With GdiPlusRasterLayer

Hi,


 


I am having some issue using GdiPlusRasterLayer. I try to render a JPG file using GdiPlusRasterLayer. But, the problem is image getting cuts off. I am using the following code to add a GdiPlusRasterLayer


wpfMap.MapUnit = GeographyUnit.DecimalDegree;

wpfMap.Background = new SolidColorBrush(Colors.Gray);

wpfMap.MapTools.Logo.IsEnabled = false;

LayerOverlay rootOverlay = new LayerOverlay();

RectangleShape rect = new RectangleShape(-122, 74, 106, -62);

wpfMap.CurrentExtent = rect;
GdiPlusRasterLayer rootImageLayer = new GdiPlusRasterLayer(@"Images\Milpitas.jpg", rect);
rootImageLayer.UpperThreshold = double.MaxValue;
rootImageLayer.LowerThreshold = 0;
rootImageLayer.IsGrayscale = false;
//rootImageLayer.

rootOverlay.TransitionEffect = TransitionEffect.None;

rootOverlay.Layers.Add("rooot",rootImageLayer);
wpfMap.Overlays.Add("rootOverlay",rootOverlay);


wpfMap.Refresh();

 


 Please see the attached images for more information. You will notice that image is cutoff (top and right )



001_GdiRasterLayer.JPG (49 KB)
f.JPG (89.2 KB)

 


Hi Raquibur,
Thanks for your post. I tried to apply your sample code to my test application but I couldn’t recreate the cut off problem you mentioned in the post.
I’m not sure about the meaning of “getting cuts off” you mentioned. I’m guessing that means the image has got some parts missing compared with the original one; however, the one I got in my application is exactly the same as the original image. Could you please be more specific about what your problem is? It will be very helpful if you are willing to attach a screen shot that indicates which part of the image is missing from the original one.
Sorry for the inconvenience.
Thank you very much.
James

Hi James, 



Please check the attached images in my previous post. f.jpg is the original image and the GdiRasterLayer.jpg is the screenshot of the map image. 

And, please share your sample project with me.  I am using 4.5.50.0 package.



Regards 

Raquib



Raquibur,


I use the same sample code which you post, just change the  file path name. I still don't find any different between two screen-shots, could you point out the difference?


I use word to make them together, you can use mark pen to highlight different places.


Thanks,


James

 



Doc1.doc (172 KB)

Hi James, 
  
 If you see  my attached images or the doc file you attached, you will see that when map is rendered the top black border and right black border is cut off. Please check the width of the black border of the images. 
  
  
 Regards, 
 Raquib

Hi James, 
  
 If you see  my attached images or the doc file you attached, you will see that when map is rendered the top black border and right black border is cut off. Please check the width of the black border of the images. 
  
  
 Regards, 
 Raquib

Raquibur, 
  
 Thanks for your more information, now we get it. 
  
 We can reproduce your problem, our development team is working on it and if we find the solution I will let you know. 
  
 Thanks, 
 James

Hi James, 
  
 Thanks for the support. Please add this to the development priority list. And, please notify me when this issue has been fixed. 
  
 Regards, 
 raquib

Raquibur, 
  
 Just let you know, we have put it as show-stoppper priority, however this issue is complex that we are still working on it. 
  
 Thanks, 
 James

 


Raquibur,
 
I have created a custom GdiPlusRasterLayer to fix your problem, could you try the attached sample code.
 
Thanks,
James

DisplayASatelliteImage.xaml.zip (1.25 KB)

Hi James, 
  
 I tried your code with stream loading but it fails. Will you please modify your code to work with stream loading. You solution works if i don’t use stream loading. And also please make this change in the API. 
  
 Regards, 
 Raquib

Raquibur, 
  
 The StreamLoaing event is raise at OpenCore, now you can override OpenCore and write your own logic to handle the parameters of event args, we can create a stream variable to store the stream from event,and then use it at GetImageCore. 
  
 Please let me know if you still can not make it. 
  
 Thanks, 
 james

Hi James, 
  
 Why don’t you put this fix in the build. It will be lot easy for us if you can fix this bug in the build.  
  
 regards, 
 Raquib

Hi James, 
  
 Why don’t you put this fix in the build. It will be lot easy for us if you can fix this bug in the build.  
  
 regards, 
 Raquib

Raquibur,


It's not easy to fix, the workaround which I gave to you is not good performance so that I couldn't use it, we are working on this issue, if we find the good way I will fix it in the daily build.


I have update some code that show what you want with StreamLoading event, Please look at attached file.


Thanks,

James



DisplayASatelliteImage_StreamLoading.zip (1.88 KB)

Hi James, 
  
 Is the fix has been included in the latest API. We are waiting for the updated API with this fix. 
  
  
 Regards, 
 Raquib

Raquibur, 
  
 I have applied the new logic to version 4.5.135.0, please get the latest dll package from daily build development branch and try it again. 
  
 Thanks, 
  
 James