|
|
2020/12/11(Fri) 11:39:51|NO.91909
PNGファイルを読み込み、縮小して保存するプログラムを作りたいのですが、うまく保存されません。
解決方法のご教授をお願いいたします。
〜〜〜
#include "a2d.hsp"
#include "hspcv.as"
title "hsp.exe"
randomize
size_png=512
screen 0,size_png,size_png
picload "c_icon_512x512.png"
file_name="ic_launcher.png"
screen 1,size_png,size_png
size=36
gsel 1 :pos 0,0
redraw 0
gzoom size,size,0,0,0,size_png,size_png
redraw 1
alSaveFile "file_name.png","image/png",0,0,size,size
|
|
2020/12/11(Fri) 13:30:20|NO.91911
alSaveFile は、Artlet2D で作成した仮想イメージの情報でしか保存できませんので、保存する前に仮想イメージを作成してください。
#include "a2d.hsp"
#include "hspcv.as"
title "hsp.exe"
randomize
size_png=512
screen 0,size_png,size_png
picload "c_icon_512x512.png"
file_name="ic_launcher.png"
screen 1,size_png,size_png
size=36
gsel 1 :pos 0,0
redraw 0
gzoom size,size,0,0,0,size_png,size_png
redraw 1
alCreateImage 0,size,size //仮想イメージを作成
alCopyScreenToImage 1,0,0,0,size,size,0,0 //HSP Screen 1 → 仮想イメージ 0 にコピー
alSaveFile "file_name.png","image/png",0,0,size,size
|
|
2020/12/11(Fri) 13:44:34|NO.91912
リサイズだけであれば、Artlet2Dだけで完結できるので、
そっちの方がすっきりするかも…?
#include "a2d.hsp"
size=36
file_name="ic_launcher.png"
alCreateImageByFile 0, "c_icon_512x512.png"
size_w = alGetWidth() : size_h = alGetHeight()
alCreateImage 1, size, size
alStretchImageToImage 0, 1, 0, 0, size_w, size_h, 0, 0, size, size
alSaveFile file_name, "image/png"
; 解放処理は省略
|
|
2020/12/11(Fri) 21:59:55|NO.91913
お二方
ありがとうございます。
TOMATOさんのほうがスッキリされていたので使わせていただきました。
無事うまくいきました。
pngを指定してhsp3dishのアイコンにリサイズして指定階層にアウトプットさせようとしていたのですが、上記で止まって困っておりました。
おかげさまでできました。
ありがとうございます。
#include "a2d.hsp"
alCreateImageByFile 0, "c_icon_512x512.png"
size_w = alGetWidth() : size_h = alGetHeight()
file_name="ic_launcher.png"
dir_name="res"
//フォルダが無ければ作成する
dirlist dir,dir_name,5
if stat=0 :mkdir dir_name
size=36: dir_name="res\\drawable-ldpi" :gosub *make_png
size=48: dir_name="res\\drawable-mdpi" :gosub *make_png
size=72: dir_name="res\\drawable-hdpi" :gosub *make_png
size=96: dir_name="res\\drawable-xdpi" :gosub *make_png
size=144: dir_name="res\\drawable-xxdpi" :gosub *make_png
size=192: dir_name="res\\drawable-xxxdpi" :gosub *make_png
end
*make_png
//フォルダが無ければ作成する
dirlist dir,dir_name,5
if stat=0 :mkdir dir_name
alCreateImage 1, size, size
alStretchImageToImage 0, 1, 0, 0, size_w, size_h, 0, 0, size, size
alSaveFile dir_name+"\\"+file_name, "image/png"
return
|
|