🌸 「なでしこ」
>
🍯 「貯蔵庫」
🍯 なでしこ3貯蔵庫
🌟新規
📒一覧
🔌
🔍検索
🚪ログイン
ログイン
していません。
[
📌文法
] [
🎨命令一覧
]
[編集モード] ランレングス圧縮・解凍+白黒8x8ドット描画ツール
画像をランレングス圧縮するテスト
プログラム:
(→大)
(→textarea)
(→左右に配置)
# ------------------------------------------------ # ランレングス圧縮・解凍+白黒8x8ドット描画ツール # ------------------------------------------------ # [解説URL] https://news.mynavi.jp/techplus/article/nadeshiko-84/ TILE=40 描画データ=0を64だけ配列要素作成 色配列=[白色,黒色] 結果ラベル=「」のラベル作成。 タイル描画処理。 描画中キャンバスをマウス押した時には: XX=INT(マウスX÷TILE) YY=INT(マウスY÷TILE) 描画データ[YY*8+XX]=(描画データ[YY*8+XX]+1)%2 タイル描画処理 ●タイル描画処理とは: Yを0から7まで繰り返す: Xを0から7まで繰り返す: V=描画データ[Y*8+X] 色配列[V]に塗り色設定 [X*TILE,Y*TILE,TILE,TILE]へ四角描画 V=描画データを「」で配列結合。 圧縮V=Vをランレングス圧縮 結果=「元データ:{文字数(V)}文字/圧縮データ:{文字数(圧縮V)}文字<br>圧縮データ:{圧縮V}」 結果ラベルに結果をテキスト設定。 ●(入力データを)ランレングス圧縮とは: 結果は空 個数=0 前回C=入力データの1文字左部分 # --- 入力データを先頭から順に調べる --- (*1) Cで入力データを反復: もし、Cが前回Cならば: 個数を1増やす # --- (*2) もし、個数=9ならば: 結果=結果&「{個数}{C}」# --- (*3) 個数=0 続ける。 結果=結果&「{個数}{前回C}」# --- (*4) 前回C=C 個数=1 結果=結果&「{個数}{前回C}」 それは結果。 ●(圧縮データを)ランレングス解凍とは: 結果=「」 個数=0 # 圧縮データを先頭から順に調べる ---- (*5) Cで圧縮データを反復: # 偶数なら繰り返し回数、奇数なら実際のデータ --- (*6) もし、(対象キー%2)が0ならば: 個数=INT(C) 違えば: Cを個数でリフレインしてCCに代入。# --- (*7) 結果=結果&CC それは結果。
▶ 実 行 [F9]
クリア
一時保存
デバッグ
ブレイクポイント:
→ 再開
↓ 一行次へ
×
キャンバス: 幅
× 高
dc96e533debd57909cb5d65bab850230
2783
上書き保存
表示ページ
→直前に実行(または一時保存)した内容を復元
なでしこバージョン: v
素材のアップロード
ログイン
するとファイルをアップロードできます。