<div dir="ltr">Thank you very much for the quick reply.<div><br></div><div>Eventually i'm going to start developing on a WSI desktop viewer. For the time being, i have decided to proceed with the browser viewer.</div><div>I'm trying to extend the deepzoom_multiserver code, by giving it the ability to add images on the same viewer. To do that, i have changed the code of the slide(path) function</div><div><br></div><div><font face="verdana, sans-serif">@app.route('<path:path>')</font></div><div><font face="verdana, sans-serif">def slide(path)</font></div><div><font face="verdana, sans-serif">       slide = _get_slide(path)</font></div><div><font face="verdana, sans-serif">       slide_url = url_for('dzi', path=path)</font></div><div><font face="verdana, sans-serif">       return render_template('slide-fullpage.html', slide_url=slide_url, slide_filename=slide.filename, slide_mpp=slide.mpp, overlay_url=slide_url)</font></div><div><br></div><div>So, i basically added a variable, overlay_url, whose value is the original opened image, to the html code. My slide-fullpage.html file looks like this:</div><div><br></div><div><div><font face="verdana, sans-serif"><!doctype html></font></div><div><font face="verdana, sans-serif"><meta charset="utf-8"></font></div><div><font face="verdana, sans-serif"><title>{{ slide_filename }}</title></font></div><div><font face="verdana, sans-serif"><br></font></div><div><font face="verdana, sans-serif"><style type="text/css"></font></div><div><font face="verdana, sans-serif">html {</font></div><div><font face="verdana, sans-serif">    overflow: hidden;</font></div><div><font face="verdana, sans-serif">}</font></div><div><font face="verdana, sans-serif">body {</font></div><div><font face="verdana, sans-serif">    margin: 0;</font></div><div><font face="verdana, sans-serif">    padding: 0;</font></div><div><font face="verdana, sans-serif">}</font></div><div><font face="verdana, sans-serif">div#view {</font></div><div><font face="verdana, sans-serif">    position: absolute;</font></div><div><font face="verdana, sans-serif">    left: 0;</font></div><div><font face="verdana, sans-serif">    width: 100%;</font></div><div><font face="verdana, sans-serif">    height: 100%;</font></div><div><font face="verdana, sans-serif">    background-color: black;</font></div><div><font face="verdana, sans-serif">    color: white;</font></div><div><font face="verdana, sans-serif">}</font></div><div><font face="verdana, sans-serif"></style></font></div><div><font face="verdana, sans-serif"><br></font></div><div><font face="verdana, sans-serif"><div id="view"></div></font></div><div><font face="verdana, sans-serif"><br></font></div><div><font face="verdana, sans-serif"><script type="text/javascript" src="{{ url_for('static', filename='jquery.js') }}"></script></font></div><div><font face="verdana, sans-serif"><script type="text/javascript" src="{{ url_for('static', filename='openseadragon.js') }}"></script></font></div><div><font face="verdana, sans-serif"><script type="text/javascript" src="{{ url_for('static', filename='openseadragon-scalebar.js') }}"></script></font></div><div><font face="verdana, sans-serif"><script type="text/javascript"></font></div><div><font face="verdana, sans-serif">$(document).ready(function() {</font></div><div><font face="verdana, sans-serif">    var viewer = new OpenSeadragon({</font></div><div><font face="verdana, sans-serif">        id: "view",</font></div><div><font face="verdana, sans-serif">        tileSources: "{{ slide_url }}",</font></div><div><font face="verdana, sans-serif">        prefixUrl: "{{ url_for('static', filename='images/') }}",</font></div><div><font face="verdana, sans-serif">        showNavigator: true,</font></div><div><font face="verdana, sans-serif">        showRotationControl: true,</font></div><div><font face="verdana, sans-serif">        animationTime: 0.5,</font></div><div><font face="verdana, sans-serif">        blendTime: 0.1,</font></div><div><font face="verdana, sans-serif">        constrainDuringPan: true,</font></div><div><font face="verdana, sans-serif">        maxZoomPixelRatio: 2,</font></div><div><font face="verdana, sans-serif">        minZoomLevel: 1,</font></div><div><font face="verdana, sans-serif">        visibilityRatio: 1,</font></div><div><font face="verdana, sans-serif">        zoomPerScroll: 2,</font></div><div><font face="verdana, sans-serif">        timeout: 120000,</font></div><div><font face="verdana, sans-serif">    });</font></div><div><font face="verdana, sans-serif">    viewer.addHandler("open", function() {</font></div><div><font face="verdana, sans-serif">        // To improve load times, ignore the lowest-resolution Deep Zoom</font></div><div><font face="verdana, sans-serif">        // levels.  This is a hack: we can't configure the minLevel via</font></div><div><font face="verdana, sans-serif">        // OpenSeadragon configuration options when the viewer is created</font></div><div><font face="verdana, sans-serif">        // from DZI XML.</font></div><div><font face="verdana, sans-serif">        viewer.source.minLevel = 8;</font></div><div><font face="verdana, sans-serif">    });</font></div><div><font face="verdana, sans-serif"><span style="white-space:pre">      </span>viewer.addTiledImage({</font></div><div><font face="verdana, sans-serif"><span style="white-space:pre">          </span>tileSource: '{{overlay_url}}',</font></div><div><font face="verdana, sans-serif"><span style="white-space:pre">          </span>x: 0,</font></div><div><font face="verdana, sans-serif"><span style="white-space:pre">           </span>y: 0,</font></div><div><font face="verdana, sans-serif"><span style="white-space:pre">           </span>width: 10</font></div><div><font face="verdana, sans-serif"><span style="white-space:pre">               </span>})</font></div><div><font face="verdana, sans-serif">    var mpp = parseFloat("{{ slide_mpp }}");</font></div><div><font face="verdana, sans-serif">    viewer.scalebar({</font></div><div><font face="verdana, sans-serif">        pixelsPerMeter: mpp ? (1e6 / mpp) : 0,</font></div><div><font face="verdana, sans-serif">        xOffset: 10,</font></div><div><font face="verdana, sans-serif">        yOffset: 10,</font></div><div><font face="verdana, sans-serif">        barThickness: 3,</font></div><div><font face="verdana, sans-serif">        color: '#555555',</font></div><div><font face="verdana, sans-serif">        fontColor: '#333333',</font></div><div><font face="verdana, sans-serif">        backgroundColor: 'rgba(255, 255, 255, 0.5)',</font></div><div><font face="verdana, sans-serif">    });</font></div><div><font face="verdana, sans-serif">});</font></div><div><font face="verdana, sans-serif"></script></font></div></div><div><font face="verdana, sans-serif"><br></font></div><div><font face="arial, helvetica, sans-serif">But the newly added image isn't added to the viewer. I also tried viewer.addSimpleImage, but that didn't work too. Do you have any suggestions?</font></div><div><font face="arial, helvetica, sans-serif"><br></font></div><div><font face="arial, helvetica, sans-serif">Thanks in Advance.</font></div></div><div class="gmail_extra"><br><div class="gmail_quote">2018-02-10 23:05 GMT+02:00 Benjamin Gilbert <span dir="ltr"><<a href="mailto:bgilbert@cs.cmu.edu" target="_blank">bgilbert@cs.cmu.edu</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">On Fri, Feb 09, 2018 at 09:11:22PM +0200, MrAr0s . wrote:<br>
> Is there any way of viewing the images on a Python GUI using the already<br>
> existing code, just like in Java?  And if not, do you have any guidelines<br>
> to get me closer to doing so?<br>
<br>
</span>There isn't.  While Java has its own GUI toolkit, Python does not, so<br>
OpenSlide Python doesn't have built-in support.  You could write a GUI in<br>
Python, though, using Python bindings to a toolkit such as Gtk+, Qt, or<br>
wxWidgets.<br>
<span class="HOEnZb"><font color="#888888"><br>
--Benjamin Gilbert<br>
______________________________<wbr>_________________<br>
openslide-users mailing list<br>
<a href="mailto:openslide-users@lists.andrew.cmu.edu">openslide-users@lists.andrew.<wbr>cmu.edu</a><br>
<a href="https://lists.andrew.cmu.edu/mailman/listinfo/openslide-users" rel="noreferrer" target="_blank">https://lists.andrew.cmu.edu/<wbr>mailman/listinfo/openslide-<wbr>users</a><br>
</font></span></blockquote></div><br></div>