私はvb6.0でスプラッシュスクリーンを作っています。私はフォームを透明にすることができましたが、今ではpngイメージをフォームの背景画像、私はスプラッシュ画面の適切な外観を取得します。私はvb6.0でフォームの背景として.pngイメージを使用したい
答えて
"スプラッシュスクリーン"はWindows 3.1でスタイルが崩れてしまい、まもなく深刻なソフトウェアではほとんど消えました。しかし、このようなことはほとんど問題なく行うことができます。
このスプラッシュ画面にPNGが透明な場所、たとえば不規則な画像として表示したい境界線のあるフォームなど、「穴がある」ように思えます。あなたは、背景のクロマキーの色の上にPNG画像をレンダリングする必要があります。
しかし、OLE/ActiveXには透明なPNGレンダリングのサポートがないため、VBではこれを直接行う方法はありません。あなたのオプションには、GDI + Flat APIやWIA 2.0などのGDI +ラッパーライブラリなどがあります。 WIA 2.0は非常に長い間Windowsの一部となっています。これはVista以降に出荷され、かつてはWindows XP SP1以降用の再配布可能ライブラリとして利用できました。
ここには、かなり短いWIA 2.0を使用した簡単な例があります。あなたはあなたにもそれを行うことができ、リソースからPNGをロードする場合
Option Explicit
Private Declare Function GetWindowLong Lib "user32" _
Alias "GetWindowLongW" (_
ByVal hWnd As Long, _
ByVal nIndex As Long) As Long
Private Declare Function SetWindowLong Lib "user32" _
Alias "SetWindowLongW" (_
ByVal hWnd As Long, _
ByVal nIndex As Long, _
ByVal dwNewLong As Long) As Long
Private Declare Function SetLayeredWindowAttributes Lib "user32" (_
ByVal hWnd As Long, _
ByVal crKey As Long, _
ByVal bAlpha As Byte, _
ByVal dwFlags As Long) As Long
Private Const GWL_EXSTYLE = -20
Private Const WS_EX_LAYERED = &H80000
Private Const LWA_COLORKEY = &H1&
Private Sub Form_Load()
Dim W As Long
Dim H As Long
Dim ScanWidth As Long
Dim Backdrop() As Byte
Dim Y As Long
Dim X As Long
Dim BackImgF As WIA.ImageFile
'Set the Form "transparent by color."
SetWindowLong hWnd, _
GWL_EXSTYLE, _
GetWindowLong(hWnd, GWL_EXSTYLE) Or WS_EX_LAYERED
SetLayeredWindowAttributes hWnd, RGB(0, 0, 1), 0, LWA_COLORKEY
'Render PNG image into the Form with transparency.
W = ScaleX(ScaleWidth, ScaleMode, vbPixels)
H = ScaleY(ScaleHeight, ScaleMode, vbPixels)
ScanWidth = ((3 * W + 3) \ 4) * 4
ReDim Backdrop(ScanWidth * H - 1)
For Y = 0 To H - 1
For X = 0 To W - 1
Backdrop(ScanWidth * Y + 3 * X) = 1 'RGB(0, 0, 1)
Next
Next
With New WIA.Vector
.BinaryData = Backdrop
Set BackImgF = .ImageFile(W, H)
End With
With New WIA.ImageProcess
.Filters.Add .FilterInfos!Stamp.FilterID
With .Filters(1).Properties
Set !ImageFile.Value = New WIA.ImageFile
!ImageFile.Value.LoadFile "bg.png" 'Background PNG.
End With
Set Picture = .Apply(BackImgF).FileData.Picture
End With
End Sub
:それはプロジェクトがMicrosoft Windows Image Acquisition Library 2.0
セットへの参照を持っていると想定しています。
Win2KまたはWinXP、またはWinXP SP1以降をサポートする必要があるが、Redist WIA 2.0ライブラリを展開しない場合は、サードパーティのGDI +ラッパーが必要です。それ以外の場合は、GDI +フラットAPI呼び出しを使用できます。それも完璧に実行可能ですが、より多くの仕事。
私は長年にわたってLaVolpeのAlphaImageControlを使用していましたが、PNG /ラスターイメージをサポートしています。ファイルとサンプルアプリケーションをダウンロードするときは、Windows 7以降を使用している場合は、regsvr32を使用して手動でコントロールを登録する必要があります。その後、コンポーネントリストのコントロールへの参照を渡す必要があり、voilaではvb6の魔法を使うコントロールがあります。ファイルはvbForumsにあります。HERE
- 1. は、私はDIVの背景としてPNG画像を使用していDIV
- 2. PNG(透明)イメージと背景色を使用してカスタムブラシを作成する
- 3. ie6の背景として.pngピクチャを使用するには?
- 4. .pngナビゲーションバーの背景画像として
- 5. ASP.Net:イメージをtdの背景として設定しようとしているときに、透明な背景pngイメージの問題
- 6. イメージの背景 - イメージを伸ばしているのではなく背景として繰り返す方法
- 7. 参照されたPNGと共にSVGを背景画像として使用
- 8. XAMLイメージをWPFウィンドウの背景として使用する
- 9. WindowsフォームTreeView - PNG画像の背景
- 10. My.Settings.Save Visual Basicを使用してフォームの背景イメージを保存する方法
- 11. onDrawを使用したキャンバスへの背景イメージですか?
- 12. png画像を使用するときの透明なフォームの背景
- 13. CSSを使用して背景イメージをマスクできますか?
- 14. ボタンをクリックしてフォームの背景イメージを変更する
- 15. 私はvue.jsプロジェクトに背景イメージを追加しようとしています
- 16. JTableを使用したJScrollpaneの背景イメージ
- 17. UINavControllerを使用した背景イメージの混乱
- 18. 背景/背景イメージが機能していませんか?
- 19. 私はこのスクリプトを使用している背景
- 20. クリップとイメージと背景イメージ
- 21. 背景グラデーションの色と背景イメージDRYly
- 22. 背景イメージと背景の添付
- 23. 背景としてキャンバスを使用したい
- 24. Android - JPGまたはPNGアプリの背景
- 25. イメージを後でjQueryで背景イメージとして設定するにはどうしたらいいですか?
- 26. Xamarinフォーム - 半分のページの背景イメージ
- 27. CanvasまたはjQueryを使用して背景イメージにイメージとテキストを配置する方法は?
- 28. Qtでは、色をPixMapまたはPNGにアルファブレンドし、それをスライダの背景イメージとして使用する方法はありますか?
- 29. イメージをHTMLスライダの背景として使用できますか?
- 30. 透明なPNGファイルをカバーしていないCSSの背景
問題点は何ですか? PNGファイルを背景として使用することはできません。そうでないと、PNGは透過的になりません。 JPEG? – GSerg
背景として.pngを使用できません。@GSerg –
png形式は直接サポートされていません。あなたはいくつかの選択肢があります:1. PNGをjpgに変換します。 2. vb6 PNGの読み込み画像のGoogle検索を行います。 3. vb.netなどの最新のプログラミング言語に更新します。 –