私はWindowsのビットマップを読むためのコードを書いていますが、これをltkで表示したいと考えています。適切なオブジェクトを構築するにはどうすればよいですか? ltkにそのような機能はありますか?どうすればtkに直接接続できますか?ltkで画像を表示するにはどうすればよいですか?
答えて
で発見することができます
package require Img
set image [image create photo -file /path/to/image.bmp]
label .l -image $image
pack .l
が、最も簡単な方法へ:平野Tcl/Tkであなたのコードは次のようになります。あなたが簡単にできますが、は非常に簡単です - あなたは、デフォルトでは画像で何ができるか残念ながら
(defpackage #:ltk-image-example
(:use #:cl #:ltk))
(in-package #:ltk-image-example)
(defun image-example()
(with-ltk()
(let ((image (make-image)))
(image-load image "testimage.gif")
(let ((canvas (make-instance 'canvas)))
(create-image canvas 0 0 :image image)
(configure canvas :width 800)
(configure canvas :height 640)
(pack canvas)))))
かなり制限されており、あなただけのGIFまたはppmの画像を使用することができます。以下のようにLTKとのイメージがある表示からのppmイメージを作成するあなたのビットマップ。しかし、あなたが表示された画像を操作したいと言うと、イメージオブジェクトを定義するコードを見て:
(defclass photo-image(tkobject)
((data :accessor data :initform nil :initarg :data)
)
)
(defmethod widget-path ((photo photo-image))
(name photo))
(defmethod initialize-instance :after ((p photo-image)
&key width height format grayscale data)
(check-type data (or null string))
(setf (name p) (create-name))
(format-wish "image create photo [email protected][ -width ~a~][email protected][ -height ~a~][email protected][ -format \"~a\"~][email protected][ -grayscale~*~][email protected][ -data ~s~]"
(name p) width height format grayscale data))
(defun make-image()
(let* ((name (create-name))
(i (make-instance 'photo-image :name name)))
;(create i)
i))
(defgeneric image-load (p filename))
(defmethod image-load((p photo-image) filename)
;(format t "loading file ~a~&" filename)
(send-wish (format nil "~A read {~A} -shrink" (name p) filename))
p)
画像の実際のデータは、Tcl/Tkのインタプリタによって保存され、アクセスされていないように見えますlispの中から。アクセスしたい場合は、おそらくフォーマットを使用して独自の関数を書く必要があります。とsend-wishを願うでしょう。
もちろん、各ピクセルを個別にキャンバスオブジェクトにレンダリングすることはできますが、パフォーマンスは非常に良いとは思いません。キャンバスウィジェットは少々遅く表示しようとすると少し遅くなりますそれに何千もの異なるものがあります。まとめると、リアルタイムで何かを気にしなければ、ビットマップを表示するたびにビットマップを.ppmイメージとして保存し、上記のコードを使用して簡単に読み込むことができます。これが最も簡単です。それ以外の場合は、tk自体のデータにアクセスすることができます(ppmイメージとして一度読み込んだ後)、最後にそのツールがない場合は別のツールキットに切り替えることができます。まともなlisp GUIツールキットのほとんどはLinux向けですので、ウィンドウを使用している場合は不運になる可能性があります。
Tkは、Windowsビットマップファイルをネイティブにサポートしていません。ただし、「Img」拡張機能は、ほぼすべてのプラットフォームで自由に利用できます。データを読み込む必要はなく、ディスク上のファイルから直接画像を作成することができます。もう少し情報が、私は何のためにLTKを使用するのでそれはしばらくしているhttp://wiki.tcl.tk/6165
- 1. MySQLデータベースの画像をJavaScript画像スライダに表示するにはどうすればよいですか?
- 2. 画像だけでなく、画像が表示されるように画像を追加するにはどうすればいいですか?
- 3. メタボックス画像フィールドに複数の画像を表示するにはどうすればいいですか
- 4. Facebookアンドロイドアプリのように画像に名前を表示するにはどうすればいいですか?
- 5. Androidタブでは、画像の下にテキストを表示するにはどうすればよいですか?
- 6. Drupalで画像を表示する場所を移動するにはどうすればよいですか?
- 7. Microsoft AccessでSql Serverから画像を表示するにはどうすればよいですか?
- 8. page.htmlでGoogleドライブから画像を表示するにはどうすればよいですか?
- 9. カテゴリ画像に表示されない機能画像を非表示にするにはどうすればよいですか?問題の
- 10. ドロップダウンメニューオプションから表示する画像を設定するにはどうすればよいですか?
- 11. ローカルURLからテーブル列に画像を表示するにはどうすればよいですか?
- 12. Outlook 2013で画像表示を修正するにはどうすればよいですか?
- 13. Chromeで実際の画像サイズを表示するにはどうすればよいですか?
- 14. 画像を正方形で表示するにはどうすればよいですか?
- 15. android - 画像をキャッシュしてオフラインで表示するにはどうすればよいですか?
- 16. XAMLの画像を実際のサイズで表示するにはどうすればよいですか?
- 17. Angular 2テンプレートで元の画像の寸法を表示するにはどうすればよいですか?
- 18. Sencha Touchで画像を表示するにはどうすればよいですか?
- 19. プレビューサブビューで選択したステッカー(画像)を表示するにはどうすればよいですか?
- 20. QRコードスキャニングのアクションとして、画像を(オフラインで)表示するにはどうすればよいですか?
- 21. Perl CGIスクリプトで画像を表示するにはどうすればよいですか?
- 22. リサイクラー内のcardviewでスライド画像を表示するにはどうすればよいですか?
- 23. WordPressで複数の画像をスライダとして表示するにはどうすればよいですか?
- 24. CSSで大きな背景画像を表示するにはどうすればよいですか
- 25. picassoを使用してURIの画像を表示するにはどうすればよいですか?画像が表示されない
- 26. 画像に示すようにアンドロイドでカラーボックスをデザインするにはどうすればいいですか?
- 27. vueコンポーネントにアップロードされた画像で画像を表示するにはどうすればよいですか?このような
- 28. Giphy API - 検索結果から画像を表示するにはどうすればよいですか?
- 29. javafxの別のウィンドウから画像を表示するにはどうすればよいですか?
- 30. 小さなプレビューから画像のフルスクリーンを表示するにはどうすればよいですか?
その場合、私の質問は次のとおりです。データへのアクセス方法を教えてください。画像フィルタをいくつか適用したいと思います。 – Sarien