プチコン3号&BIGまとめWiki

投稿プログラム : GPKライブラリ Ver.1.01 (GRPを小さく保存)

パンくずリスト

2015年9月28日投稿 / 2015年10月9日更新 / 投稿者 : ほしけん / タグ : 投稿プログラム ライブラリ ツール GRP グラフィック 圧縮

概要

GPKライブラリ (GRPパックライブラリ) は、グラフィックを GPK という独自の形式でセーブ・ロードするためのライブラリで、以下の特徴があります。

  • GRP の一部分だけを使った小さい画像をセーブすることができます。
  • 使用されている色数が少ない場合、パレット (インデックスカラー) 形式に変換して、データを小さくすることができます。
  • 画像データを1行の文字列に変換して、BASIC のプログラムに直接埋め込むことができます。あまり大きくない画像しか使わない場合は、PRG ファイルひとつで完結させることができます。

ライブラリ本体は PRG:GPKLIB です。冒頭、および各関数の前に使い方の説明が書かれています。また、PRG:GPKLIB_SAMPLE は簡単な機能デモです。画像データ読み書きのシンプルなプログラムなので参考にしてください。

使い方

GPKLIB というファイルがライブラリの本体ですので、これを自分のプログラムのプロジェクトにコピーするか、自分のプログラムの末尾にコピペしてください。

自分のプログラムの末尾にコピーする

このライブラリのプログラムはそんなに大きくないので、自分のプログラムの末尾にコピーすることをおすすめします。ファイルの読み込みしかしない場合は、ライブラリの 178 行目から下はセーブの処理しかないので、コピーしなくてもかまいません。また、何か初期化する必要はありません。

PRG1 (または 2, 3) スロットにライブラリを読み込んで初期化する
  1. EXEC ”PRG1:GPKLIB”

または

  1. LOAD ”PRG1:GPKLIB”,FALSE:USE 1

画像を読み書きする

このライブラリは、セーブもロードも GPAGE 命令の第2引数で指定した操作ページを対象に処理します。

GRP の一部を GPK ファイルにセーブする
  1. GPKSAVE ”TEST.GPK”,X,Y,幅,高さ,ビット数

GRP の指定した領域を GPK ファイルとして保存します。色数が多い場合や、画像が大きい場合はそれなりに時間がかかります。

ビット数は、少ないほどデータが小さくなりますが、使える色数も少なくなります。

  • 0 : 画像の色数を数えて、最適な値を自動で決めますが、保存に2倍の時間がかかります。
  • 16 : SAVE で GRP リソースを保存したときと同じ 65536 色です。保存にさほど時間はかかりませんが、画像の一部分しか保存しない場合じゃないと意味がありません。
  • 1:2色、2:4色、3:8 色、4:16色、5:32色、6:64色、7:128色、8:256色、9:512色、10:1024色、11:2048色、12:4096色
  • 13ビット (8192色) 以上は小さくならないので、明らかにすごく色数が多い場合は、16 を指定して保存してください。
GPK ファイルをロードする
  1. GPKLOAD ”TEST.GPK”,X,Y

保存した GPK ファイルを、GRP リソース上にロードします。データによりますが、大きすぎる画像だと数秒程度かかる場合があります。

GPK データを文字列として読み書きする

GPKSAVETXT$ 関数を使用すると、GPK データを文字列化することができます。すごく長い文字列となりますが、1行にまとまります。この文字列をプログラムに埋め込んで、GPKLOADTXT 命令で GPK ファイルのように画像としてロードさせることができます。詳しくは、GPKLIB_SAMPLE のプログラムを見てください。

バージョン履歴

Version 1.01 (2015/10/9 更新)

  • アルゴリズムの見直しにより、セーブを10~50倍ほど高速化しました。
  • サンプルプログラムの終了後、3秒ほどボタンを押すのを待つようにしました。
  • セーブ時、XとYの扱いが間違っていて、正しくセーブできないことがあるのを修正しました。

スクリーンショット・動画

http://web.archive.org/web/1996if_/d3esbfg30x759i.cloudfront.net/ss/WVW69ibs2JA-Snad9v#.gif http://web.archive.org/web/1996if_/d3esbfg30x759i.cloudfront.net/ss/WVW69ibs5BsOeMnz64#.gif

公開キー

プチコン3号用の公開キーです。トップメニューの「作品公開とダウンロード」から公開キーを入力すると、作品をダウンロードすることができます。

プチコン3号/BIG 公開キー
T3N323KJ

CHECKER FLAG (ひとことコメント)

この作品に対するコメントがあれば一言どうぞ。(作品に直接関係ない質問や雑談は掲示板へ)

  • 名無しさん : こういうのをやりたかった… (2015/09/30 (水) 17:27:07)
  • サトシзıо4 : すごーいですね‼ (2015/09/30 (水) 21:31:24)
  • 名無しさん : おお!!圧縮もついかすれば... (2015/12/10 (木) 22:45:38)
  • 天郷思音 : すでにGPKを使えば無駄が省かれてるので効率のいい圧縮じゃないと肥大するかもね。 (2015/12/23 (水) 13:09:32)
  • 天郷あじみ(思音) : 連長圧縮を重ね掛けするとウハウハになるかも。 (2016/05/05 (木) 20:47:26)
  • 天郷思音 : OPTION STRICTをつけたらUndefind variable。未宣言変数あるっぽい? (2016/09/24 (土) 16:00:08)

メニュー 【3号】

ヘルプ

リンク

最近の更新

最近の人気ページ

オンライン情報

  • 現在同時に 1 人がこのサイトを見ています
  • このページはこれまでに 2148 回、本日は 1 回、昨日は 0 回閲覧されました

ページの先頭に戻る

表示モード : [ スマホ・3DS対応表示 | クラシック表示 ]
PukiWiki 1.4.7 Copyright © 2001-2006 PukiWiki Developers Team. License is GPL. Based on "PukiWiki" 1.3 by yu-ji
ページの処理時間 : 0.121 秒 | このページの最終更新 : 2022/09/20 (火) 12:48:49 (565d) | ログイン
Copyright(C) 2011-2014 プチコンまとめWiki ◆1sxkymI8ji30