HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2015
0120
ニボッシー32bitPNGで保存する方法2解決


ニボッシー

リンク

2015/1/20(Tue) 19:22:38|NO.67014

お世話になっています。
32bitPNGで画像を保存したいのですが標準の命令では出来ないためやり方が分かりません。
今まで試した方法だと24bitPNGでしか保存されないため作業が進まない状況です。
こちらのソースをいじって32bitで保存するということは出来るのでしょうか?
もし出来ないのであれば別の方法で32bitPNGで保存する方法を教えてください。
よろしくお願いします。


モジュールはこちらのサイトのを使っています。
http://fs-cgi-basic01.freespace.jp/~hsp/ver3/hsp3.cgi?print+201201/12010002.txt


#module // GDIplusImgSaveMod.hsp ver 0.98 /********* 画面イメージセーブ ***************************************** imgsave "filename", p1 ; BMP、JPEG、GIF、TIFF、PNG 形式で保存します "filename" : 保存するファイル名 p1= 1〜100(60) : JPEGの圧縮品質 ※ WindowsXP以前のOSは gdiplus.dllが必要です。 ***************************************************************************/ #uselib "gdiplus" #func GdiplusStartup "GdiplusStartup" int, int, int #func GdiplusShutdown "GdiplusShutdown" int #func GdipCreateBitmapFromGdiDib "GdipCreateBitmapFromGdiDib" int, int, int #func GdipSaveImageToFile "GdipSaveImageToFile" int, wstr, int, int #func GdipDisposeImage "GdipDisposeImage" int #define global imgsave(%1= "hsptmp.jpg", %2= 60) imgsave_ %1, %2 #deffunc imgsave_ str filename, int jpeg_quality if varptr.GdiplusStartup= 0 : return -1 // gdiplus.dllが必要です f= ".bmp .jpg .gif (≧▽≦)ノ.tiff.png" // 保存フォーマットを確定 fmt= instr(f, 0, getpath(filename,18)) if fmt= -1 : return -1 dim GSI, 4 : GSI= 1 // GDI+ 準備 GdiplusStartup varptr.token, varptr.GSI, 0 mref bm, 67 GdipCreateBitmapFromGdiDib bm.6, bm.5, varptr.GpBit // 対象画像 *pbi, *pBit, GpBitmap q= jpeg_quality // 保存処理 ENCODE= 1 , $1D5BE4B5, $452DFA4A, $B35DDD9C, $EBE70551, 1, 4, varptr.q UUID= $557CF400+fmt/5, $11D31A04, $0000739A, $2EF31EF8 GdipSaveImageToFile GpBit, filename, varptr.UUID, varptr.ENCODE GdipDisposeImage GpBit : GdiplusShutdown varptr.token // おしまい return 1 #global picload dir_exe+"\\sample\\game\\tilebg.bmp" imgsave dir_desktop+"\\test.png" end



この記事に返信する


rest

リンク

2015/1/20(Tue) 21:59:47|NO.67020

alSaveFileのヘルプには
>ピクセルフォーマットは、(その形式でサポートされている場合) 32bpp ARGB となります。
とあるのでそれを使えばいいのでは。

//サンプル #include "a2d.hsp" alCreateImage 0,800,600 alColor 255,0,0,64 alFillEllip 0,0,800,600 alSaveFile "test.png", "image/png" //32bit PNGで保存 picload dir_exe+"\\hsptv\\bg01.jpg" picload "test.png",1 //アルファ成分が保存されてるか確認



ニボッシー

リンク

2015/1/21(Wed) 18:47:36|NO.67029

>rest様
標準でついてくるプラグインのチェックはしていませんでした。
無事32bitで保存できました!ありがとうございました!



ONION software Copyright 1997-2023(c) All rights reserved.