描画モードの指定がpen命令で'PorterDuff'を使った指定法へ統一されました。
豊富な合成が可能となります。
PUT@(x1,y1),w1,h1,(x2,y2),[w2],[h2],[描画モード]
先に書き換え部分だけ簡潔に示します。
PUT@文末尾の[描画モード]が2~3だったものを1へ
4だったものを2へ、書き換えが必要になります。
get@,put@描画モードの指定はpen命令で行うようになります。
pen
,[PorterDuff描画モード]
詳しくはマニュアル pen, put@をご覧下さい。
ここからは新方式で正確に動作させるための変更点の詳細について記述します。
事前にpen命令で描画モードを指定します。
描画=0
[前]
put@(,),,,(,),,,0 (または無指定)
[新] pen ,3:put@(,),,,(,),,,0
描画=1
[前]
put@(,),,,(,),,,1
[新] pen ,3:put@(,),,,(,),,,1
描画=2 (または3)
[前]
put@(,),,,(,),,,2 (または3)
[新] pen ,1:put@(,),,,(,),,,1
描画=4
[前]
put@(,),,,(,),,,4
[新] pen
,1:put@(,),,,(,),,,2
get@文にも影響がありますので使用後デフォルトの pen ,1 へ戻すとよりよいです。
put@の変更についてわからない場合はメールでご相談下さい。
PUT@ |
[機能] グラフィックバッファ(2番目の座標)からグラフィック画面(1番目の座標)へ画像データを引き出します。
[書式] PUT@(x1,y1),w1,h1,(x2,y2)[,[w2],[h2][,描画モード]]
[説明]
w1,w2=横サイズ
h1,h2= 縦サイズ
転写元と転写先のサイズが異なる場合、拡大縮小描画されます。
各種重ね合わせの方式は
pen命令で設定することができます。
<描画モード>の指定で次の選択ができます。
0.
グラフィックバッファからグラフィック画面への描画。
1. グラフィック画面からグラフィック画面への描画。
2.
グラフィックバッファからグラフィックバッファへの描画。
[例]
put@(0,0),32,32,(64,64),16,16 :'zoom x2
PEN |
[機能] 描画するペンのサイズを設定します。
[書式] PEN [ペンサイズ]
[,描画モード]
[説明]
[ペンサイズ]で描画のペンサイズを設定します。値が大きい程ペンの幅も大きくなります。
PSET,LINE,LINE
B,CIRCLE の描画に影響を与えます。
[描画モード]
PorterDuffといわれる描画モードで下地画像と描画画像の重ね合わせ方式を選択します。
get@,put@での描画に影響を与えます。
PorterDuffの詳細についてはこちらの公式解説をご覧下さい。
https://developer.android.com/reference/android/graphics/PorterDuff.Mode
他にもよりわかりやすい情報がありますので'PorterDuff'で検索することをお勧めします。
次の中から 0~17の数値で指定します。
0.CLEAR
1.SRC 2.DST
3.SRC_OVER
4.DST_OVER 5.SRC_IN 6.DST_IN
7.SRC_OUT
8.DST_OUT 9.SRC_ATOP 10.DST_ATOP
11.XOR
12.DARKEN 13.LIGHTEN 14.ADD
15.MULTIPLY
16.SCREEN
17.OVERLAY
アルファ値も含めた処理が行われます。
基本的にカラー0の黒は透明扱いになります。
種類が多いですが通常の使用では1番(デフォルト)か3番を指定します。
いくつか使用度の高い代表的なものを紹介します。
1.SRC
描画画像をそのまま描画します。
3.SRC_OVER
上から重ね合わせを行う描画です。
11.XOR
論理演算のXORを利用した描画です。
14.ADD
論理演算のORを利用した描画です。
15.MULTIPLY
論理演算のANDを利用した描画です。
[例]
pen 8
line(50,50)-(200,400)
pen
,3
put@(100,100),16,16,(200,200),,,1