したらばTOP ■掲示板に戻る■ 全部 1-100 最新50 | メール | |

汎用関数・ライブラリ総合スレ

97No.76 ◆TjhVHgLlXw:2019/09/08(日) 23:02:03 ID:vVc.2kjQ
以前スレ民のかたに教わりながら作ってUPしたCO0のcolorMatrixのサンプルから
ARG_COLORに0xRRGGBBのカラーコードを、ARG_ALPHAに0〜255の透明度を指定し
画像の色を変える機能だけ抜き出して貼ります(ARG_ALPHAは指定しなければ初期値不透明)
ARG_COLOR=-2でグレーのシルエット画像に・ARG_COLOR=-1で元の画像をそのまま表示
発色は元画像の明るさでだいぶ変わるので少し癖があります
ベース画像は彩度0を想定して作りました
もっと奇麗に色の出るやりかたがあるのかもしれないので気が向いた方は改善してください
今度は最低限の部分をコピペしたのでミスはないはず(と願う)作者名表記とかは不要です

ERHに
#DIM COLOR_MATRIX_ELEMENTS, 5, 5

ERBに
@CODE_TO_RGB_R(ARG_COLOR)
#FUNCTION
#DIM DYNAMIC ARG_COLOR
#DIM DYNAMIC RGB_R

RGB_R = (ARG_COLOR >> 16) & 0xFF

RETURNF RGB_R


@CODE_TO_RGB_G(ARG_COLOR)
#FUNCTION
#DIM DYNAMIC ARG_COLOR
#DIM DYNAMIC RGB_G

RGB_G = (ARG_COLOR >> 8) & 0xFF

RETURNF RGB_G


@CODE_TO_RGB_B(ARG_COLOR)
#FUNCTION
#DIM DYNAMIC ARG_COLOR
#DIM DYNAMIC RGB_B

RGB_B = ARG_COLOR & 0xFF

RETURNF RGB_B


@GET_COLOR_MATRIX(ARG_COLOR, ARG_ALPHA = 255)
#DIM DYNAMIC ARG_COLOR
#DIM DYNAMIC ARG_ALPHA
#DIM DYNAMIC RGB_NEW_R_OLD_R
#DIM DYNAMIC RGB_NEW_G_OLD_R
#DIM DYNAMIC RGB_NEW_B_OLD_R
#DIM DYNAMIC RGB_NEW_R_OLD_G
#DIM DYNAMIC RGB_NEW_G_OLD_G
#DIM DYNAMIC RGB_NEW_B_OLD_G
#DIM DYNAMIC RGB_NEW_R_OLD_B
#DIM DYNAMIC RGB_NEW_G_OLD_B
#DIM DYNAMIC RGB_NEW_B_OLD_B

VARSET COLOR_MATRIX_ELEMENTS

IF ARG_COLOR == -2
COLOR_MATRIX_ELEMENTS:0:0 = 0, 0, 0, 0, 0
COLOR_MATRIX_ELEMENTS:1:0 = 0, 0, 0, 0, 0
COLOR_MATRIX_ELEMENTS:2:0 = 0, 0, 0, 0, 0
COLOR_MATRIX_ELEMENTS:3:0 = 0, 0, 0, ARG_ALPHA, 0
COLOR_MATRIX_ELEMENTS:4:0 = 60, 60, 60, 0, 255
ELSEIF ARG_COLOR == -1
COLOR_MATRIX_ELEMENTS:0:0 = 255, 0, 0, 0, 0
COLOR_MATRIX_ELEMENTS:1:0 = 0, 255, 0, 0, 0
COLOR_MATRIX_ELEMENTS:2:0 = 0, 0, 255, 0, 0
COLOR_MATRIX_ELEMENTS:3:0 = 0, 0, 0, ARG_ALPHA, 0
COLOR_MATRIX_ELEMENTS:4:0 = 0, 0, 0, 0, 255
ELSE
RGB_NEW_R_OLD_R += CODE_TO_RGB_R(ARG_COLOR)
RGB_NEW_G_OLD_R += CODE_TO_RGB_R(ARG_COLOR)
RGB_NEW_B_OLD_R += CODE_TO_RGB_R(ARG_COLOR)
RGB_NEW_R_OLD_G += CODE_TO_RGB_G(ARG_COLOR)
RGB_NEW_G_OLD_G += CODE_TO_RGB_G(ARG_COLOR)
RGB_NEW_B_OLD_G += CODE_TO_RGB_G(ARG_COLOR)
RGB_NEW_R_OLD_B += CODE_TO_RGB_B(ARG_COLOR)
RGB_NEW_G_OLD_B += CODE_TO_RGB_B(ARG_COLOR)
RGB_NEW_B_OLD_B += CODE_TO_RGB_B(ARG_COLOR)
COLOR_MATRIX_ELEMENTS:0:0 = RGB_NEW_R_OLD_R, RGB_NEW_R_OLD_G, RGB_NEW_R_OLD_B, 0, 0
COLOR_MATRIX_ELEMENTS:1:0 = RGB_NEW_G_OLD_R, RGB_NEW_G_OLD_G, RGB_NEW_G_OLD_B, 0, 0
COLOR_MATRIX_ELEMENTS:2:0 = RGB_NEW_B_OLD_R, RGB_NEW_B_OLD_G, RGB_NEW_B_OLD_B, 0, 0
COLOR_MATRIX_ELEMENTS:3:0 = 0, 0, 0, ARG_ALPHA, 0
COLOR_MATRIX_ELEMENTS:4:0 = 0, 0, 0, 0, 255
ENDIF

RETURN 0


新着レスの表示


名前: E-mail(省略可)

※書き込む際の注意事項はこちら

※画像アップローダーはこちら

(画像を表示できるのは「画像リンクのサムネイル表示」がオンの掲示板に限ります)

掲示板管理者へ連絡 無料レンタル掲示板