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


HSPTV!掲示板


未解決 解決 停止 削除要請

2019
1104
あーく透過画像の保存2解決


あーく

リンク

2019/11/4(Mon) 18:14:23|NO.88804


私は今画像を読み込んで色を指定してその色を透過し、その画像を保存するというプログラムを作成中です。 画像を読み込んで色の指定する所までは出来たのですが、画像を保存する時に透過させたまま保存する方法が分かりません。 お願いいたします。



この記事に返信する


とあるプログラマ

リンク

2019/11/4(Mon) 18:55:36|NO.88805

こんな感じですかね?

#include "a2d.hsp" #define ctype RGB(%1, %2, %3) (%1 << 16 | %2 << 8 | %3) screen 0 pos 0, 0 objsize 100, 20 button gosub "読み込み", *loadImage pos 100, 0 button gosub "キーカラー選択", *getKeyColor pos 200, 0 button gosub "保存", *saveImage stop *loadImage dialog "png|jpg|bmp|gif|tiff", 16, "" if (stat == 1) { // 画像から仮想イメージ作成 alCreateImageByFile 0, refstr // スクリーンに描画 gosub *redrawScreen } return *getKeyColor dialog "", 33 if (stat == 1) { // キーカラーを保存 keyColor = RGB(ginfo_r, ginfo_g, ginfo_b) alCopyModeColorKey keyColor, keyColor //今は選択した色のみの透過をしています。上限下限を設定すれば類似色も透過できます。 // スクリーンに描画 gosub *redrawScreen } return *redrawScreen // スクリーンに描画 gsel 0 redraw 0 color 255, 255, 255 boxf alCopyImageToScreen 0, 0, 0, 20 redraw 1 return *saveImage dialog "png|jpg|bmp|gif|tiff", 17, "" if (stat == 1) { // カラーキー反映のためにコピーの画像イメージを作成 alSelectImage 0 alCreateImage 1, alGetWidth(), alGetHeight() alCopyImageToImage 0, 1 // 保存 alSelectImage 1 switch getpath(refstr, 2) case ".jpg" alSaveFile refstr, "image/jpeg" swbreak case ".bmp" alSaveFile refstr, "image/bmp" swbreak case ".gif" alSaveFile refstr, "image/gif" swbreak case ".tiff" alSaveFile refstr, "image/tiff" swbreak default alSaveFile refstr, "image/png" swbreak swend dialog "保存しました:" + refstr + "" } return



あーく

リンク

2019/11/4(Mon) 21:49:27|NO.88807

有難う御座います!
早速試させて頂きました!



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