現在はbmpsaveで保存しているのですが
せっかくならjpg、png出力にも対応したい思い、色々試しましたががやり方がわかりませんでした。
現在のソース
画面からDIBデータを取るには
#uselib "imgctl.dll" #cfunc ToDIB "ToDIB" str #cfunc PNGAtoDIB "PNGAtoDIB" str #func HeadDIB "HeadDIB" int,var #func DIBtoDC "DIBtoDC" int,int,int,int,int,int,int,int,int #const global SRCCOPY $CC0020 #cfunc DCtoDIB "DCtoDIB" int,int,int,int,int #func DeleteDIB "DeleteDIB" in #include "winmm.as" ImageName = dropfile ImageDIB = ToDIB(ImageName) HeadDIB ImageDIB,ImageData dupptr picX, varptr(ImageData)+4, 4, 4 dupptr picY, varptr(ImageData)+8, 4, 4 buffer 1, picX*2,picY DIBtoDC hdc, 0, 0, picX, picY, ImageDIB, 0, 0, SRCCOPY DeleteDIB ImageDIB screen 0, picX, picY,2 gcopy 1,0,0 ,picX, picY ;〜〜line命令などのメイン画像処理〜〜 bmpsave "" + getpath(dropfile,1) +"_見えないよ.bmp" end
で出来ましたが、
ImageDIB = DCtoDIB(hdc, 0,0, picX, picY)
DIBtoJPGとDIBtoPNGがわかりません
とりあえず
とやってみるのですが error4 パラメーター式の記述が無効です
#uselib "imgctl.dll" #cfunc ToDIB "ToDIB" str #func DIBtoPNG "DIBtoPNG" int,int,int #func DIBtoJPG "DIBtoJPG" int,int,int,int #func DeleteDIB "DeleteDIB" int dropfile = dirinfo(4) if peek(dropfile, ) = '"' : getstr dropfile, dropfile, 1, '"' DIBdata = ToDIB(dropfile) pngfile = a.png jpgfile = a.jpg DIBtoPNG(pngfile,DIBdata,0) DIBtoJPG(jpgfile,DIBdata,100,0)
と出てしまいます。
DIBtoPNGの説明?はこれです
> BOOL DIBtoPNG(LPCSTR lpPngFile, HDIBC hDIB, BOOL bInterlacing)
> DIBデータからlpPngFileのPNGファイルを作成します。
> bInterlacingにTRUEを設定すると、インターレースPNGになります。
自分はlpPngFileはファイルネーム、hDIBはDIBデータ、bInterlacingは細かい設定用だと思ったのですが違うようです。
どなたかDIBtoPNGとDIBtoJPGの使い方を教えて下さい。