ab.com コミュニティ

ActiveBasicを通したコミュニケーション
現在時刻 - 2024年3月29日(金) 06:11

全ての表示時間は UTC+09:00 です




新しいトピックを投稿する  トピックへ返信する  [ 4 件の記事 ] 
作成者 メッセージ
投稿記事Posted: 2012年12月10日(月) 13:01 
http://www31.ocn.ne.jp/~heropa/vb42.htm
↑のページのコードをABに移植すればimgctl.dllなどの外部DLLなしでPNGやJPGを読めるんじゃないか、と思ってコードを作ってみました。

しかし、私VBに一度も触れたことが無いので上手くできていないのか、何も表示されません。

どなたか間違いの指摘をお願いします。

以下に私のコードを載せておきます。ややこしいのでエラーメッセージ取得の部分は省いてありますが
DEBUG_A、DEBUG_Bの箇所で調べるとどちらも
「指定されたファイルが見つかりません」
とでてきます。

ファイルパスの部分は相対パス絶対パスともに試しました。

画像は手元にあったpng、jpg、bmpで試しました。


通報する
ページトップ
   
投稿記事Posted: 2013年1月14日(月) 01:18 
オフライン

登録日時: 2005年5月31日(火) 20:14
記事: 203
お住まい: 兵庫県
ここのフォーラムも超久しぶりです。

GDI+のファイル名指定はUnicodeでやらないとだめなようです。
MultiByteToWideChar(CP_ACP, ...) で Shift-JIS → Unicode の変換ができます。

_________________
[hira]
http://hira.hopto.org/


通報する
ページトップ
投稿記事Posted: 2013年1月16日(水) 18:50 
気がついたら返信頂いていました。

hiraさん、本当にありがとうございます!

ご指摘の通りコードを改良し、さらに別サイトの情報も参考にしたところ、GDI+で画像の読み書きができるようになりました。

といってもGDI+を理解したわけではないので、今のところ

・GIF、PNG、JPG、BMPなどの読み込み
・JPGの出力(品質指定可能)
・PNGの出力(詳細設定不可)

しかできません。

でもPNGを扱えるのでゲームを作る際に容量を削減できるようになりました。

↓読み込み ↓保存 ・Function GDIPLoadPicture(FilePath As BytePtr) As HBITMAP
画像を読み込み
FilePath…ファイルパス
戻り値…ビットマップハンドル

・GDIPSavePNG(FilePath As BytePtr,hBmp As HBITMAP)
PNGを保存(上書き)
FilePath…保存先ファイルパス
hBmp…ビットマップハンドル

・GDIPSavePNG(FilePath As BytePtr,hBmp As HBITMAP,Quality As Long)
PNGを保存(上書き)
FilePath…保存先ファイルパス
hBmp…ビットマップハンドル
Quality…品質(0~100?)

↓使用例 参考
http://www31.ocn.ne.jp/~heropa/vb42.htm
http://hpcgi1.nifty.com/MADIA/VBBBS2/ww ... 080012.txt


通報する
ページトップ
   
 記事の件名:
投稿記事Posted: 2013年1月16日(水) 18:55 
連続ですみません

上記コードの説明3個目
・GDIPSavePNG(FilePath As BytePtr,hBmp As HBITMAP,Quality As Long)
PNを保存

とありますが、正しくは
・GDIPSaveJPG(FilePath As BytePtr,hBmp As HBITMAP,Quality As Long)
JOGを保存

です。失礼しました。


通報する
ページトップ
   
期間内表示:  ソート  
新しいトピックを投稿する  トピックへ返信する  [ 4 件の記事 ] 

全ての表示時間は UTC+09:00 です


オンラインデータ

このフォーラムを閲覧中のユーザー: Ahrefs [Bot], Google [Bot] & ゲスト[13人]


トピック投稿:  可
返信投稿:  可
記事編集: 不可
記事削除: 不可
ファイル添付: 不可

検索:
ページ移動:  
cron
Powered by phpBB® Forum Software © phpBB Limited
Japanese translation principally by ocean