私は.ico
ファイルの内容をメモリにconst char*
として保存していますが、このデータからHICON
を作成します。私の現在のアプローチは、一時ファイルにデータを書き込んでから、を使用することです。代わりにメモリから直接アイコンを作成することはできますか?ウィンドウ上のメモリからHICONを作成する
-1
A
答えて
1
GDI +またはWICを使用せずにこれを行う場合は、.ICOファイルの形式が.EXE/.DLLのアイコンリソースとまったく同じではないため、何らかの構文解析を行う必要がありますリソースベースのアイコン機能を使用します。公式のバイナリ仕様はhereであり、それについての素晴らしいブログシリーズがありますhere。
.icoファイルに複数のイメージがある場合は、イメージディメンションが見つかるまで、アイコンディレクトリをループする必要があります。次にCreateIcon
に電話してHICON
を作成することができます。
0
CreateIcon
でアイコンを作成することはできますが、png形式の画像データを送ってもらうことはできません。
(他の言語を使用するために申し訳ありませんが、一例として、それを取る、あなたは直接Cでその関数を使用することができます):
from ctypes import *
from ctypes.wintypes import *
CreateIconFromResourceEx = windll.user32.CreateIconFromResourceEx
size_x、size_yを= 32、32 LR_DEFAULTCOLOR = 0
with open("my32x32.png", "rb") as f:
png = f.read()
hicon = CreateIconFromResourceEx(png, len(png), 1, 0x30000, size_x, size_y, LR_DEFAULTCOLOR)
希望します。
関連する問題
- 1. ウィンドウ上に.gitファイルを作成する
- 2. コマンドラインからウィンドウを閉じる(ウィンドウ上)
- 3. メモリ上に生成するグラフ作成ツール
- 4. Tkinter - ルートウィンドウの上に新しいウィンドウを作成する
- 5. チタン:上部に残るウィンドウを作成する
- 6. 既存のウィンドウから新しいPyQt4ウィンドウを作成するには?
- 7. グリッドから同じウィンドウに作成
- 8. ブラウザからウィンドウのインスタンスを作成する
- 9. ウィンドウ上で画像ポップアップを作成する方法Tkinter python3
- 10. Cocoa:別のウィンドウから1つのウィンドウを作成して閉じる
- 11. バッファからメモリにdbファイルを作成する
- 12. PHPメモリから新しいZIPを作成する
- 13. メモリからWindows GDIビットマップを作成する
- 14. ResponseStreamからメモリストリームを作成するメモリ不足例外
- 15. コードから別のウィンドウを作成しますか?
- 16. すでに作成されたウィンドウを別のウィンドウから開きます
- 17. フルサイズでウィンドウからグラフィックを作成する
- 18. pushButtonから新しいウィンドウを作成するには
- 19. Clojure REPLからlwjglでOpenGLウィンドウを作成する
- 20. 可視ウィンドウまたはビューからビデオを作成する
- 21. WinForms BackgroundWorkerからWPFウィンドウを作成する
- 22. イメージからQtでウィンドウを作成する
- 23. Windows上で動作するJenkinsからLinux上にドッキング・コンテナを作成する
- 24. 共有メモリからTensorflow変数を作成できますか?
- 25. Python:すべてのウィンドウの上にtkinterプログラムを作成できますか?
- 26. 上に残り、他のウィンドウをブロックするvbscriptメッセージボックスを作成する
- 27. スレッドのメモリを作成する
- 28. メモリにドキュメントを作成しますか?
- 29. ウィンドウ上のgitサブモジュールクローンは、ターゲットフォルダを作成していません
- 30. nanocはどこに私のサイトをウィンドウ上に作成しますか?
はい。ファイルを解析し、アイコンを作成します。 –
@DavidHeffernanファイルの作成を避けようとしています。私は文字の配列としてメモリ内のアイコンの内容を持っていて、そのデータから直接HICONを作成したいと思っています。 –
'CreateIconFromResource'を見てください。 –