2017-08-16 31 views
0

私はangle4アプリケーションでopenseadragonズームプラグインを実装しようとしています。openseadragonで元の画像サイズを表示する方法は?

私はhomeFillsViewer : trueを使用する場合は、画像がある

const viewer = OpenSeadragon({ 
      id     : 'seadragon-viewer', 
      prefixUrl   : '//openseadragon.github.io/openseadragon/images/', 
      tileSources  : this.primaryPicture.hiResInformation, 
      showFullPageControl: false, 
      showNavigator  : true, 
      homeFillsViewer : false, 
     }); 

、私は以下のように使用している場合openseadragonは、画像サイズを制限し、中央に画像を設定して、すべてが働いているが、私は元の画像サイズを表示することができないことができますdivにフィットしますが、画像はトリミングされた画像のように適切ではありません。

画像の元のサイズを表示したい。

解決策があれば、事前におねがいします。

答えて

1

あなたがDZIイメージのため実際のサイズのコンテナを表示したい場合 - あなたのコンテナは、元画像のサイズと同じ大きさを持つ必要があります。あなたは、高解像度の画面用window.devicePixelRatioを使用する必要が

viewer.addHandler('open', function() { 
$("#seadragon-viewer").attr("style", "height: " + 
    (viewer.world.getItemAt(0).source.dimensions.y/
    window.devicePixelRatio) + "px;" + "width: " + 
    (viewer.world.getItemAt(0).source.dimensions.x/
    window.devicePixelRatio) + "px"); 
}); 

:あなたはこのコードを使用することができますすることができません。

+0

これも良い答えです。あなたが達成しようとしていることに依存します。 – iangilman

+0

これは私のために働いているようですが、問題はイメージがコンテナの左側に整列していますが、私は中央に必要です。 –

+0

上記のコードにさらにスタイルを追加してみてください:style = "text-align:center;"また、Googleのセンターに画像を置く方法をご利用ください。 – Observer

1

元のサイズでは、画像のピクセルと画面のピクセルとの間に1対1の対応が必要ですか?ズームを理解するには、ビューアのサイズと画像のサイズを比較し、適切にズームする必要があります。このような何か:

viewer.addHandler('open', function() { 
    var tiledImage = viewer.world.getItemAt(0); // Assuming you just have a single image in the viewer 
    var targetZoom = tiledImage.source.dimensions.x/viewer.viewport.getContainerSize().x; 
    viewer.viewport.zoomTo(targetZoom, null, true); 
}); 

ここでは、アクションである:https://codepen.io/iangilman/pen/RZxEWZ

+0

元のサイズは、高さ:1300と幅:1200のようなソースの画像サイズは、ビューアに同じサイズで表示する必要がありますが、現在、ビューアは元のサイズに関係なくすべての画像を特定のサイズに制限しています –

+0

私たちは同じことを話していると思います。このコードは、このトリックを行う必要があります。それでもパンをする必要があることに注意してください。 – iangilman

+1

これは私にとってはうまくいかなかったようです。私は問題を発見しようとし、それがうまくいけば解決策を投稿します。 ご協力いただきありがとうございます。 @iangilman –

関連する問題