2011-09-14 18 views
0

私はMacとWinで動作するGUIアプリケーションを作成していますが、解決方法はわからない小さな問題が1つあります。 私のアプリケーションでは、画像を配置した小さな(250 x 250ピクセル)プレビューウィンドウ(「SW」と呼ぶ)があります。画像はSWよりはるかに大きくなる可能性があります。どこかにSW内の画像のズーム機能を実装したスライダーがあります。私の主な問題は、この画像にズーム機能を実装することです。プレビュー内の画像を拡大

私が持っている入力の場合:

  • 元画像を、それは幅と高さです。
  • ビューイメージ - 拡大元画像のコピーです。
  • ズーム画像の位置ビューポートの
  • サイズは250×250ピクセルである

それべき画像処理プログラムのズームのように動作します。ズーム値のイメージを変更すると、ビューポートの中心とその内部のイメージの位置に対して相対的に小さくなります。ビューポートの内部で画像を移動できます。 この問題を正しく実装するには、画像のサイズと位置を計算する必要があります。私はすでに画像サイズの変更を実装するいくつかの "algo"を書いています。それはある は、次のようになります。

float one = (source_original_size - thumbnail_size)/100; 
int bigger_side_size = qRound((100-value) * one) + thumbnail_size; 

しかし、私はそのズーム画像の場面に位置を算出することができるか想像することはできません。

誰でも私にアイデアを教えてもらえますか?

私はQtフレームワークとQGraphicsView,QGraphicsSceneQGraphicsPixmapItemを使用しています。

答えて

1

Image Viewer Exampleを見ると、探している機能がいくつかあります。

+0

ありがとうございますが、私はそれを見ましたが、それは非常に簡単な例です。私はそれをビューポートセンターに関連してズームする必要があります。それが主な問題です。 – fryme