Skip to content

Petit Note v3.8.2 リリース

Latest

Choose a tag to compare

@satopian satopian released this 23 Jul 15:00
3db56de

Petit Noteとは

  • 1スレッド1ログファイル形式のスレッド式の画像掲示板です。
    PaintBBS NEO,tegaki.jsAXNOS Paint,litaChix,Klecksが使えるお絵かき掲示板です。

お絵かき掲示板PHPスクリプトのダウンロードと設置

  • このページの一番下のソースコードリンクからダウンロードできます。
    また、お絵かき掲示板の設置方法 に設置方法を記載しましたのでご一読ください。

English version is here

Petit Note v3.8.2 リリース

2026/08/15 v3.6.3

SSRFの脆弱性を修正

Misskey直接入力URLのSSRF対策 by sakots · Pull Request #18 · satopian/Petit_Note

  • 直接入力に脆弱性があるという事でプルリクエストを頂きましたが、コードが長く検証が難しいためクローズしました。
  • その上で、直接入力がある事で発生しうる問題を考えました。
    詳細は省略しますが、悪意があるユーザ、または誘導されたエンドユーザーが直接入力したサーバにPOSTリクエストが送信される事そのものに問題があるという結論に至りました。
    そのため、misskeyノート機能から任意のmisskeyサーバをエンドユーザーが指定する直接入力機能を削除しました。
    直接入力を単に廃止しただけではフォームの入力欄をブラウザの開発者ツールなどで操作すればどのサーバにも接続できてしまうため、デフォルトの値または、config.phpに記載があるサーバの一覧と比較して一覧になければ処理を中止するようにしました。その確認処理を二箇所で行うようにしました。(ホワイトリスト方式)
    これにより、リストに記載されているサーバ以外へのPOSTリクエストを防ぎます。
    またhttpsチェック他の追加のチェックも同時に行われるため、config.phpに記載ずみのリストが不正と判定された時にも処理は中止されます。

ダークモード切り替え時の動作を改善

  • ダークモード切り替え時にリロードが発生していましたが、非同期でCSSを書き換えるようになりました。
    これにより、コメント欄に記入途中でもダークモードに切り替える事ができます。
    画面全体をリロードしないため、処理が軽くなります。

いいねボタンの表示のための変数が未定義になるケースがあったのを修正

  • いいね機能があるファイル一式に更新した後で、1ページ目のJSONのキャッシュによる配列が古い形式だった時に、いいねボタンに関連する変数の配列のキーの未定義エラーが発生していたのを修正しました。

いいねボタンを押す事ができる上限数

  • いいねボタンを押下できる上限数を100,000回から10,000回に引き下げました。
    また、すでに10,000回いいねされている時にはいいねのログファイルの更新処理を行わないようにしました。

一定期間経過後のmisskeyノート

  • 初期設定では投稿から半年が経過した時点で編集や続きを描く、misskeyノートなどの機能が使えなくなりますが、管理者ログイン時にはそれらは機能していました。
    しかし、いいねボタンを実装した時に、一定期間経過後のmisskeyノートが管理者ログイン状態でできなくなっていた事が判明しました。
    そのため該当箇所を修正しました。
    今は管理者ログイン状態であれば過去のすべての投稿をmisskeyにノートできます。(管理者自身の投稿に限ります)

コード整理

  • エンドユーザーには関係ないものの、開発者には意味のあるコードの整理を行いしました。
  • お絵かき処理の関数が長くなりすぎていたのを分割しました。
  • アプリ固有ファイル(.pch、.chi、.psd)のアップロードペイントと続きを描く処理を2つに分けて、お絵かき処理の関数の外に出しました。
    ひとつの関数が長くなると可読性が低下して保守が困難になるからです。

変更があったファイル

  • clap.inc.php
  • connect_misskey_api.php
  • functions.php
  • index.php
  • misskey_note.inc.php

変更があったテンプレート

  • template/basic/js/common.js
  • template/basic/misskey_server_selection.html (直接入力廃止のため入力欄がなくなっています)
  • template/basic/parts/threads_loop.html

2026/08/15 v3.6.3

NEO、tegakiの旧動作再生URLを存続

  • 旧動作再生URLを存続させることにしました。
    例)?mode=pchview&imagefile=1786787226666398.png&no=2
    動画を再生しようとすると403エラーになるサイトが存在していたため、旧形式の動画再生URLを存続させる事にしました。
    テンプレートの変更がこの間重なっており、それにさらに変更を加えるのは好ましくないと判断しました。

config.phpから「変更不可」の設定項目を撤去しました

/*変更不可*/

// 変更しないでください
// テンポラリ
define("TEMP_DIR","temp/");
// ログ
define("LOG_DIR","log/");
// 画像
define("IMG_DIR","src/");
// 画像
define("THUMB_DIR","thumbnail/");

これらの設定項目は変更できないにも関わらず、config.phpに存在していました。
これをindex.php内部に移動しconfig.phpから削除しました。
しかしながら、設定が残っていても動作に支障ありません。
これまで使ってきたconfig.phpのままご利用いただけます。

変更があったファイル

  • index.php
    そのほかにも変更があったファイルはありますが、変更する必要がないため記載しません。

2026/08/14 v3.6.1

NEO、tegakiの旧動画再生URLを廃止

  • 古い形式の動画再生のURLパラメータには、画像のファイル名が入っていました。
    そのため、数字のみ許可といったバリデーションができず、また、ファイル名である事から、なにかファイル名をパラメータに渡せば機密情報がでてくるのではないかと予測するbotの攻撃の標的になっていました。
    そのため、v2.xになる以前のv1.xの時点で変更になった古い形式の動画再生URLを廃止しました。
    パラメータに「imagefile」と入っている形式の動画再生を廃止しました。
    更新後に「imagefile」と入っている形式のURLを表示すると403エラーが返ります。

ディレクトリトラバーサル対策

  • 今のところ、ディレクトリトラバーサルによって意図しない階層からダウンロードされたり、機密情報が表示されるといった事は確認されていないのですが、階層を変更できてしまう可能性は排除する必要があるため、phpの関数basename()を追加しました。

変更があったファイル

  • functions.php
  • index.php

変更があったテンプレート

  • template/basic/index.css

2026/08/12 v3.5.0

litaChix更新

バグ修正

  • レイヤーグループの移動・変形ができなくなっていたのを修正しました。
    このバグは2026年7月の更新で発生し、v3.5.0で修正されました。

配色

  • 背景色を再度みなおしました。

変更があったファイル

  • app/chickenpaint/ ディレクトリを上書きアップデート
  • index.php

変更があったテンプレート

  • template/basic/index.css

2026/08/11 v3.3.0

  • 画像の回り込み表示をいいねボタン実装前の表示と近くなるようにしました。
  • NEOのカラーピッカーを長押した時に右クリックメニューが開いていたのを修正しました。

変更があったファイル

  • index.php

変更があったテンプレート

  • template/basic/paint_neo.html
  • template/basic/parts/threads_loop.html

2026/08/10 v3.2.0

パスワードハッシュのコストを10に引き上げ

  • パスワードハッシュの解析コストをより高くするため、パスワードハッシュのコストを10に引き上げました。

スタイルシートを調整

  • 見た目が気にならない人には関係ない事なのですが、見た目の調整を行いました。
    名前や横罫線の彩度をさげ、名前のボーダーの幅を調整しました。
    背景色をより暗くしました。

変更があったファイル

  • index.php

変更があったテンプレート

  • template/basic/index.css

2026/08/08 v3.0.9.1

  • 親が閉じると、指定経過日数を超過してない間近の投稿のいいねボタンが押せなくなるバグを修正しました。
  • 描画時間も、ツール名もないログファイルの時に改行のタグだけが入り、空行ができるバグを修正しました。

変更があったファイル

  • index.php

変更があったテンプレート

  • template/basic/index.css
  • template/basic/parts/threads_loop.html

2026/08/08 v3.0.8

いいねボタンを実装しました

image

  • いいねボタンを実装しました。
    同一セッション、同一IPの時にはいいねの数を加算しません。ただし、ログファイルに記録できるIPの数には限度があるため、判定が難しいケースの時には、いいねを加算します。
    判定が難しい時には押しても無反応とすると好意で押したにもかかわらず加算されません。
    そのため、判定が難しい時は押せるようにしました。
    サーバ負荷を考えて、一定期間を経過した記事のいいねは押せなくなるようにしました。
    config.phpに新規設定項目を追加して、いいね機能を使う、使わないを設定可能にしました。
    なにも設定していない時は、いいね機能がオンになります。
    オフにしたい場合はconfig.phpの更新をお願いします。
// いいね機能を有効にする
// する: true しない: false

$use_clap = true;
// $use_clap = false;

スレッドの途中にある画像のSNSへの共有

  • 以前から編集モードなどの処理時には、すべての画像の共有ボタンが表示されていましたが、スレッドの途中にある画像をSNSに共有可能な事がわかりにくいUIとなっていました。
    今回のいいねボタンの表示位置を検討する過程で、画像がある記事の右下にいいねボタンとSNSに共有するボタンをならべる事になりました。
    これにより、スレッドの途中にある画像の共有が簡単になり、スレッドの途中の画像でもSNSに共有できる事が誰にでもわかるようになりました。

SNS共有機能をアップデート

Ci-enの記事をPommuにシェアできるようになりました | Ci-en|サービスインフォメーション

  • こちらの記事を参考にして、共有可能なSNSにポミュを追加しました。
Screen-2026-08-05_19-42-22

config.phpの共有するサーバ一覧を設定している場合はconfig.phpの該当項目の設定が必要になります。
ポミュへの共有が必要ない場合は、config.phpを更新する必要はありません。

// SNS共有の時に一覧で表示するサーバ
// 例 	["表示名","https://example.com (SNSのサーバのurl)"],(最後にカンマが必要です)

$servers =
[
		
	["X","https://x.com"],
	["Bluesky","https://bsky.app"],
	["Threads","https://www.threads.net"],
	["Pawoo","https://pawoo.net"],
	["Pommu", "https://ch.dlsite.com/pommu"],
	["fedibird.com","https://fedibird.com"],
	["misskey.io","https://misskey.io"],
	["xissmie.xfolio.jp","https://xissmie.xfolio.jp"],
	["misskey.design","https://misskey.design"],
	["nijimiss.moe","https://nijimiss.moe"],

];

litaChix更新

  • レイヤーとレイヤーマスクを別々に移動する機能を廃止して、レイヤーとレイヤーマスクの位置関係を保持するようになりました。
    変形した時にも、レイヤーマスクとレイヤーはリンクし、カットアンドペーストした時にもレイヤーとレイヤーマスクは常にリンクするようになりました。

変更があったファイル

  • app/chickenpaint/ ディレクトリを上書きアップデート
  • app/klecks/ ディレクトリを上書きアップデート
  • app/neo/ ディレクトリを上書きアップデート
  • clap.inc.php
  • functions.php
  • index.php
  • sns_share.inc.php
  • config.php (いいね機能が必要ない時と、ポミュを共有する場合のみ更新、それ以外の場合は以前と同じconfig.phpのままご利用ください。)

変更があったテンプレート

  • template/basic/icomoon/ ディレクトリを上書きアップデート
  • template/basic/index.css
  • template/basic/js/common.js
  • template/basic/parts/before_edit_del_res_loop.html
  • template/basic/parts/threads_loop.html
  • template/basic/set_share_server.html

テンプレートをカスタマイズしていない場合は、template/ディレクトリを上書きアップデートするだけですみます。

/* SNS共有 */
 --sns-share-text-color: hsl(0 0% 36% / 1);
/* いいね */
 --clap-text-color: var(--sns-share-text-color);

index.cssの色のCSSカスタム変数に上記の2つの変数が追加されています。
カスタマイズした色の変数の設定ファイルをコピペする時はご注意ください。
変更箇所が多く、UI、UXが大きく変更となったため、メジャーバージョンを2から3に引き上げました。

2026/07/30 v2.10.2

パーミッション

  • config.phpのパーミッションが0600に自動的に変わるようにしました。
    .htaccessで外部に表示しないようにしていました。
    また、直接アクセスしても何も表示されない筈です。
    しかしながら共用サーバの別ユーザによる操作の可能性はありました。
    第三者によるユーザーサイトの改ざん被害に関するご報告 - ロリポップ!レンタルサーバー
    このケースではwp-config.phpのパーミッションが0644だった事が悪用されました。
    そのため、config.phpのパーミッションが自動的に0600になるようにしました。
    普通に考えると共用サーバの別ユーザによるファイル操作ができる事自体が問題ですが、機密情報の入ったファイルには0644を使わないようにするという防御はエンドユーザーにもできる事なので今回対策を行いました。

  • log/ディレクトリのパーミッションを0700
    ログファイルそのものは0600になっているものの、なにかの操作で外部から覗く事ができるパーミッションに変わる事があるかもしれません。
    しかし、ログファイルが格納されているディレクトリのパーミッションが0700であれば外部からの操作を防ぐ事ができます。

GETパラメータで開いて欲しくないモード

  • POSTリクエストしか受け付けていない処理のモードがGETパラメータで表示される問題を修正しました。
    表示されるといってもエラーメッセージか、何も表示されていない画面でしたが、GETパラメータを様々に試行して攻撃するBOTはそういった箇所に隙があるはずだと考えて攻撃を開始します。
    そのため、POSTリクエストしか受け付けていない処理をGETパラメータで開いた時は403エラーを返すようにしました。

変更があったファイル

  • functions.php
  • index.php
  • sns_share.inc.php

2026/07/28 v2.9.0

ホスト名が逆引きできないIPアドレスからの管理者ログインを拒絶する

  • config.phpに新規設定項目を追加しました。
//ホスト名が逆引きできないIPアドレスからの管理者ログインを拒絶する  
// する: true しない: false  

// $reject_if_no_reverse_dns_admin_login = true;
$reject_if_no_reverse_dns_admin_login = false;

// ※trueに設定すると、正当な管理者がログインできなくなる可能性があります。
// 大手プロパイダの回線であればログインできる筈ですが、公衆Wi-Fiなどで回線が変わるケースでは正当な管理者がログインできなくなる可能性があります。

掲示板へのすべての投稿を規制する設定項目は以前からありました。

//ホスト名が逆引きできないIPアドレスからの投稿を拒絶する
// する: true しない: false

// $reject_if_no_reverse_dns = true;
$reject_if_no_reverse_dns = false;

しかし、ホスト名が逆引きできない正当なユーザーは多数存在しているため、逆引き不可で拒絶すると多くの人が投稿できなくなってしまいます。
そのため、管理者ログインに限定して拒絶する設定項目を追加しました。

変更があったファイル

  • config.php (今回の追加された設定項目を使いたい場合のみ変更してください)
  • functions.php
  • index.php

2026/07/25 v2.8.6

パスワードなどの機密情報をGETパラメータで使用していた箇所を削除

  • 古くからの慣習で、GETパラメータで画像の差換えのためのパスワードを送信する事がありました。
    しかしそれは、そのURLがわかれば、パスワードもわかるという事を意味しています。
    そのため、POSTによるより安全な処理に移行する方法を模索し、安全なPOSTによる処理に移行していました。
    その時に、古い方式が必要な場合があるかもしれないと考えて、GETパラメータでパスワードを受け取る処理も残してしまいました。
    このセキュリティの穴を完全に除去するため、GETパラメータを使った画像の差換えのための機密情報の受け渡し処理を完全に削除しました。
    これまでも生のパスワードをGETにセットするべきではないと考えてOpenSSLで暗号化するなどの対策は行っていました。
    しかし、暗号化されたパスワードが漏洩すれば、その暗号化されたパスワードを復号化している処理では、暗号化されたパスワードそのものが開くための鍵になってしまいます。
    またオープンソースであるため、復号鍵が漏れていれば暗号化されたパスワードを復号化できてしまいます。
    そのため、GETパラメータを使用したパスワードの受け渡し処理を完全に削除しました。

年齢確認ボタン押下後にスレッドの途中にある画像までスクロールしない問題を修正

  • ?resno=367&resid=1784186121844160のように、residが指定されている時は、ページ内にある画像の位置までスクロールする仕様です。
    しかしながら、年齢確認ボタン押下後にリロードしていたため、ブラウザのリロード前の位置を復元する機能が働いてしまい、ページ内画像までスクロールしない状態になっていました。
    現在のURLをそのまま再度表示する処理に変更しこの問題を修正しました。

変更があったファイル

  • index.php
  • neo.js

変更があったテンプレート

  • template/basic/js/common.js
  • template/basic/paint_chi.html

2026/07/23 v2.8.3

バグ修正

  • PHP8で追加されたstr_contains()を使用してしまったため、PHP8.x環境では問題なく動作するものの、PHP7.4などで致命的エラーが発生していました。
    そのため、PHP7.4でも動作するstrpos()を使用するようにしました。
  • PHP7.4で追加されたプロパティ型指定を使用していたため、PHP7.3では動作しなくなっていました。
    そのため、動作環境をPHP7.4以上に変更しました。

変更があったファイル

  • functions.php
  • index.php

2026/07/22 v2.8.1

サーバに負荷をかけるSQLインジェクションの試行を検出した時は403

  • このスクリプトはSQLを使用していないため、いくらSQLコマンドをインジェクションしても何も流出しません。
    しかしながら、これらのBOTによる攻撃はサーバへの負荷になります。
    そのため、GETパラメータでSQLインジェクションのパターンを検出した時は、403エラーを返すようにしました。

PaintBBS NEO更新

  • 手ぶれ補正レベル1の時の補正強度を弱くしました。
  • 線幅が8px以上の時の補正強度を弱くしました。
  • 画面が拡大されている時の補正強度を弱くしました。
  • 開発を継続できるようにするためコードの整理を行いました。

litaChix更新

  • 開発を継続できるようにするためコードの整理を行いました。

変更があったファイル

  • app/chickenpaint/ ディレクトリを上書きアップデート
  • app/neo/ ディレクトリを上書きアップデート
  • functions.php
  • index.php

2026/07/15 v2.7.1

PHP8.6Alpha1でテスト

  • 11月にリリースされるPHPの最新バージョンPHP8.6のAlpha1でテストし、PHP8.6では非推奨である事が判明したmb_regex_encoding()を撤去しました。
  • PHPのrfcで非推奨化の議論が行われているlist()構文を撤去しました。

NEO、litaChix更新

  • これまではanyになっていた箇所に型を追加し、型の追加によって発生したTS型チェックのエラーを修正しました。
    開発を継続できるようにするためのコードの整理をすすめています。

変更があったファイル

  • app/chickenpaint/ ディレクトリを上書きアップデート
  • app/neo/ ディレクトリを上書きアップデート
  • connect_misskey_api.php
  • functions.php
  • index.php
  • misskey_note.inc.php
  • noticemail.inc.php
  • save.inc.php
  • search.inc.php
  • thumbnail_gd.inc.php

2026/07/11 v2.6.2

litaChix更新

  • これまでは、画像をコピーしてペーストすると、マスクで消えているはずの箇所がマスクなしでペーストされていました。
    そして、マスクをコピペするとマスクとしてペーストされず新規画像にグレースケールの画像としてペーストされていました。
    そのため、画像とマスクをセットでコピー(またはカット)し、画像とマスクがリンクした状態でペーストできるようにしました。
  • 選択範囲をかけて変形した時に、画像とマスクは別々に変形していました。
    そのため、画像とマスクがリンクした状態で変形できるようにしました。
    しかし、マスクだけ拡縮したい時やマスクだけ移動したりマスクを複製したい時もあるかもしれません。
    そのため、マスク編集時にはマスクのみの変形や移動、複製ができるようにしました。
    マスク編集時にはレイヤーとマスクの関係性をあえて切るこの仕様以外の箇所はクリスタに近い動作になりました。
    より一般的なペイントツールの操作に近くなり、直感的に操作できるようになりました。
    また、マスクの変形時にマスク画像の断片画像のグリッチが発生する古くから存在していた問題を解消しました。
    NEO、litaChixともに、class構文に移行しprototype構文は0件になりました。

変更があったファイル

  • app/chickenpaint/ ディレクトリを上書きアップデート
  • app/neo/ ディレクトリを上書きアップデート
  • index.php

2026/07/05 v2.5.8

PaintBBS NEOのテキスト入力のバグを修正

  • 半角英数を使用して、bewなどを入力するとテキスト入力が終了するバグを修正しました。
    ショートカットキーのbで鉛筆に切り替わっていました。
    また、動的パレットやカラーピッカーの16進数の入力欄といったNEO本体以外の入力欄でbと入力するとNEOのツールが鉛筆に切り替わっていたのを修正しました。
    NEOのテキスト入力欄と、外部のテキスト入力欄の判定を分離し、さらに入力欄ではない時にのみNEOのショートカットキーを有効化するようにしました。

変更があったファイル

  • app/neo/ ディレクトリを上書きアップデート
  • index.php

2026/07/04 v2.5.7

litaChix更新

  • prototype構文をclassのメソッドに変更しました。
    473件あったprototype構文は3件のみになりました。
  • ツールのスポイトを選択した時にスポイト用の十字カーソルに切り換わらなくなっていたバグを修正しました。

PaintBBS NEO更新

  • PaintBBS NEOの開発が開始された2016年当時は、古いブラウザに対応するため、prototype構文による実装が必要でした。
    しかし、そこから10年の時が流れ、prototype構文は必須ではなくなり、class構文が主流になりました。
    class構文を使用すると静的解析ツールによるバグの発見が容易になり、可読性も向上します。
    そのため、557箇所に及ぶprototype構文をES6 class構文に書き直しました。

カラーピッカーのデザインをClassicからMonolithに変更

image

カラーピッカーのサイズが大きすぎたため、pickrのCSSテーマをClassicからMonolithに変更しました。

変更があったファイル

  • app/chickenpaint/ ディレクトリを上書きアップデート
  • app/neo/ ディレクトリを上書きアップデート
  • index.php

変更があったテンプレート

  • template/basic/paint_neo.html

2026/06/30 v2.5.5

  • PWAとして使用するときに、動画が別タブとして開かなくなり、画面を閉じるリンクのクリックでPWAのアプリ全体が閉じてしまう問題を修正しました。
  • tegaki.jsの動画再生画面のviewportが正しく設定されていなかったのを修正しました。
  • litaChixを更新しました。

変更があったファイル

  • app/chickenpaint/js/chickenpaint.js
  • app/chickenpaint/js/chickenpaint.min.js
  • index.php

変更があったテンプレート

  • template/basic/parts/threads_loop.html
  • template/basic/tgkr_view.html

2026/06/29 v2.5.3

  • PaintBBS NEOをv1.7.10に更新しました。
    ウィンドウビュー(フルスクリーン)モードの時にもカラーピッカーで描画色を選択できるようになりました。

image

黒色の時にカラーピッカーの色相スライダーが動かなくなっていたのを修正しました。

変更があったファイル

  • app/neo/neo.js
  • index.php

変更があったテンプレート

  • template/basic/paint_neo.html

2026/06/27 v2.5.0

PaintBBS NEO更新

PaintBBS NEO v1.7.9に更新しました。

image

PaintBBS NEO に外部ライブラリのカラーピッカーと連携するインターフェースを追加しました。
そのインターフェースを使用して、GitHub - simonwep/pickr: 🎨 Pickr を実装しました。
<input type="color">で描画色を変更する機能を追加したばかりですが、<input type="color">でカラーピッカーを開いている時には、ショートカットキーが使えなくなるなど、不便な点があり、またJavascriptのライブラリであればブラウザが変わっても同じカラーピッカーが使用できるため、🎨 Pickrに変更になりました。

変更があったファイル

  • app/neo/neo.js
  • index.php
  • lib/pickr/ ディレクトリを上書きアップデート
  • search.inc.php

変更があったテンプレート

  • template/basic/paint_neo.html

2026/06/26 v2.3.2

PaintBBS NEO更新

PaintBBS NEO v1.7.8に更新しました。

260626_001_ neo_v1 7 8

<input type="color">で呼び出されるブラウザ内蔵のカラーピッカーで、NEOの描画色を変更できるようになりました。
この機能は動的パレットの一部ではありませんが、動的パレットの枠の中に色を設定する機能を追加しています。

tegaki.js更新

tegakiは一度カラーピッカーを閉じなければ色が確定しない仕様でした。
そのため、描き始めの色が意図した色にならない事がありました。
この問題を回避するため、カラーピッカーで色を選択した時点で、描画色に即座に色を反映するようにしました。

変更があったファイル

  • app/neo/neo.js
  • app/tegaki/tegaki.js
  • index.php

変更があったテンプレート

  • template/basic/paint_neo.html

2026/06/24 v2.2.1

動的パレットスクリプト更新

独自に改良を重ねてきた
BBS Note 動的パレット&マトリクス 2003/06/22
(C) のらネコ WonderCatStudio
を更新しました。
HTML <input type="color"> 属性値 - HTML | MDN
を使用して、グラデーション作成の色の設定を行う事ができるようになりました。
ブラウザ内蔵のカラーピッカーを使用して、色を設定できるようになりました。

image

sakots/noReita: noReita, the oekaki BBS (php7.4~ , 8.x)で同様の機能が実装されたのをヒントにしましたが、異なるコードです。

変更があったファイル

  • index.php

変更があったテンプレート

  • template/basic/paint_neo.html

2026/06/21 v2.1.5

litaChix更新

  • 混色ブラシで混色した時に明度・彩度が低下するのを緩和するため、色の計算をsRGBからリニアRGBに変更しました。
    また、混色ブラシで混色する時に、明度と彩度が下がりつづけるのを防止するため、暗い色と明るい色を混色する時に、明るい色を優先するようになりました。
    これにより、暗い色が明るい色に変化します。
    陰影のエッジをぼかすために混色する時には明るくならないとうまくいきません。
    これまではわずかに暗い色があるだけであっても、混色する事で暗い色が広がっていました。

変更があったファイル

  • app/chickenpaint/ ディレクトリを上書きアップデート
  • index.php

2026/06/20 v2.1.3

バグ修正

  • 閲覧注意に設定されている画像もSNSで共有する時に使用するクエリパラメータ、'ogp_show'をホワイトリストに入れ忘れていたのを修正しました。
    ホワイトリストに存在しないクエリパラメータの時は403エラーが返るため、画像を共有できなくなっていました。

litaChix更新

  • 水彩ブラシなどで混色した時に明度・彩度が低下するのを緩和するため、色の計算をsRGBからリニアRGBに変更しました。

変更があったファイル

  • app/chickenpaint/ ディレクトリを上書きアップデート
  • index.php

2026/06/18 v2.0.8

Chromeのメモリセーバーによる描画中の画像の破棄を防止

  • 非アクティブなタブをメモリを解放するために破棄するChromeのメモリセーバーによって描画中のイラストが消失する事があります。
    そのため、非アクティブになったタブのタイトルタグを変更しアスタリスク「*」を付けます。
    これにより、非アクティブになったタブの破棄を回避します。
    しかしこれは、現時点でのブラウザの仕様を利用したハックであり、もっとも確実な回避方法は、Chromeの設定の 「常にアクティブにするサイト」 にサイトを追加する事です。

不正なクエリパラメータの時は 403 Forbiddenを返す

  • 個別スレッド表示時、通常表示時、カタログ表示時に、ホワイトリストに入っていない本来存在しないクエリパラメータによるアクセスがあった時は403 Forbiddenを返すようになりました。
    これにより、攻撃者によるサーバ負荷を削減します。

管理者ログインと続きを描く画面でCSRFトークンをチェック

投稿・編集時にはチェックしていいたCSRFトークンを管理者ログイン画面と続きを描く画面でも行うようになりました。
しかしながら、古いv1.xのテンプレートとの互換設定を行っている場合は、このチェックがなくても動作するようにしました。
$enable_v1_legacy_template_unsafe_get_login = true;とすれば、v1.xのテンプレートでも動作する事にしているため、v2.xで追加された変更が必須にならないようにしました。

ブラウザ自動化ツールのアクセスを遮断

  • 投稿処理のJavascriptは、これまでも、ブラウザ自動化ツールを検出した時に投稿を拒絶していました。
    それに加え、管理者画面や続きを描く画面をJavascriptを経由して表示する時にも、ブラウザ自動化ツールによる操作を拒絶します。

変更があったファイル

  • app/chickenpaint/ ディレクトリを上書きアップデート
  • app/neo/ ディレクトリを上書きアップデート
  • functions.php
  • index.php

変更があったテンプレート

  • template/basic/js/common.js
  • template/basic/js/visibility-change-title-rewrite.js
  • template/basic/admin_in.html
  • template/basic/continue.html
  • template/basic/paint_axnos.html
  • template/basic/paint_klecks.html
  • template/basic/paint_neo.html
  • template/basic/paint_tegaki.html

2026/06/16 v2.0.6

不正なクエリパラメータの時は403 Forbiddenを返す

  • v2.0.x で、いくつかのGETパラメータで処理していた箇所をPOSTに切り替えました。
    しかしながら検索画面は依然としてGETです。
    また、その他にもGETパラメータは使用されています。
    サイトを攻撃するBOTはSQLインジェクションのコマンドなどをクエリパラメータに入れて短時間に送信してきます。
    この掲示板システムはSQLを使っていませんが、BOTはSQLを使っているはずだと推測してアクセスしてきます。
    その時に、SQLインジェクション攻撃は成立しませんが、サーバに負荷はかかります。
    そのため、不正なクエリパラメータを検出した時は、PHPの実行をとめ、403 Forbiddenを返すようにします。
    正当なパラメータをホワイトリストとしてセットし、それ以外を403にして攻撃を遮断します。

litaChix更新

  • litaChixはChickenPaintを改造したものです。
    そのオリジナルのChickenPaintが更新され、Chromeのメモリーセーバーによるタブの破棄に対する対策が実施されました。
    それを参考にlitaChixにも同様の機能を実装しました。
    また、litaChixには、60ストロークごとにブラウザのデーターベースに保存する機能があるため、タブがメモリーセーバーによって破棄された場合でもブラウザのデーターベースから復元できる可能性があります。

変更があったファイル

  • app/chickenpaint/ ディレクトリを上書きアップデート
  • functions.php
  • index.php
  • search.inc.php

2026/06/14 v2.0.5

管理者ログイン・続きを描く・Misskeyにノートなどパスワード入力をともなう箇所の表示をGETからPOSTへ

攻撃されやすいGETパラメータを使用した表示項目をPOSTへ

  • 管理者ログイン・続きを描く・Misskeyにノートの各画面はこれまでURLを直打ちすることで画面を表示する事ができていました。
    そのため、セキュリティの脆弱性を狙うボットの攻撃対象となる事がありました。
    GETパラメータを様々に変更してなんらかのサーバの機密情報を取得するこころみが行われる事が多々ありました。
    情報が漏洩しなかったとしても、この攻撃により、サーバが不安定になる事もありました。
    そのため、管理者ログイン、続きを描く、Misskeyにノートなどのパスワードの入力を伴う箇所の表示を、URLで指定するGETではなく、POSTに切り替えます。

テンプレート互換性問題

  • しかしながら、このGETのURL指定方式を廃止すると、古いバージョン1.xのテンプレートでは、管理者ログインも続きを描く事もできなくなってしまいます。
    テンプレートのすべてが変わった訳ではなく、ごく一部ではありますが、テンプレートの改造をして見た目のカスタマイズをしている方にとっては、大きな変更になってしまうかもしれません。
    そのため、バージョン1.xの従来のテンプレートでも使用できるようにするための互換設定項目をconfig.phpに追加しました。
//セキュリティを犠牲にして古いバージョン1用のテンプレートを使用する
// する: true しない: false

// この設定項目は互換性のためだけに存在しています。
// この設定項目が最初から存在している場合はすでに対応テンプレートになっているため、設定を変更する必要はありません。

 $enable_v1_legacy_template_unsafe_get_login = true;
//$enable_v1_legacy_template_unsafe_get_login = false;

$enable_v1_legacy_template_unsafe_get_login = true;に設定することで、従来の?mode=admininで管理者ログインができるようになり、続きを描くリンクも以前と同じものが使えるようになります。
しかし、サーバへの攻撃が発生するかもしれず、パスワードを突破される可能性も高くなるGETパラメータによるこれらの画面の表示は可能であれば使用しないほうが良いと思われます。

  • テンプレートのフォルダを全部更新する分には、転送するだけで終わる作業なのですが、Javascriptのcommon.jsの更新も必要で、index.cssにも以下が追加されています。
/* リンクでPOST */
.ref-target-do-submission{
    cursor: pointer;
    /* リンクのaタグと同じ見た目になるように装飾 */
    text-decoration: underline;
    color: var(--a-color);
}
.ref-target-do-submission:hover{
    /* リンクのaタグと同じ見た目になるように装飾 */
    text-decoration: none;
    color: var(--a-hover-color);
}

新しいテンプレートでは、このような指定を追加する必要があり、これらのCSSの指定が無い場合は、リンクの下線などが表示されず、マウスオーバしても指の形に変わりません。
実際はspanタグで記述されている箇所をあたかもリンクのような見た目にするためのCSSです。

管理者ログイン、Misskeyにノート、続きを描くの各リンクをGETからPOSTへ。v1テンプレート互換設定項目追加。 · satopian/Petit_Note@7f1380f

詳しくはこちらをご覧ください。
どの箇所が変更されたのかの差分が表示されます。

不明な点がありましたら、個別に回答しますので、サポート掲示板か、GitHubのIssueを開いていただけたらと思います。

  • 検索画面は依然としてGETパラメータであり、ここもボットの標的になる事がありました。
    しかしながら、ここをPOSTに変更すると大きく使用感が損なわれてしまいます。
    そこで、ボットが攻撃する際に使用する、本来存在しないクエリパラメータを検出した時には、403エラーにして、何も表示しなくなるようにしました。
    通常の検索であれば、正当なパラメータしか入らないため、人間による使用で問題が発生する事はないと思います。

変更があったファイル

  • functions.php
  • index.php
  • misskey_note.inc.php
  • search.inc.php

変更があったテンプレート

  • template/basic/index.css
  • template/basic/js/common.js
  • template/basic/parts/admin_login_link.html
  • template/basic/parts/catalog_images_loop.html
  • template/basic/parts/threads_loop.html

2026/06/12 v1.233.0

PaintBBS NEO、litaChix更新

  • TS型解析ツールを使用して、適切な型を指定しました。
    暗黙的にanyになっていた箇所に型を指定するとnullかもしれないという警告や、整合性がとれないという警告が多数発生するケースがほとんどであるため膨大な作業になりましたが、ひとつひとつ修正していきました。
    また、暗黙的にanyになるという警告も完全に解消しました。
    コードの内容からanyにせざるを得ない箇所を明示的にanyにし、型を明確にできる箇所には型を追加しました。
    この作業には約一ヶ月かかりましたが、コード内の関数をマウスオーバーするだけで関数のパラメータや返り値の型がわかるようになりました。
    また、コードに矛盾があれば新たな警告が発生するため、バグを未然に防ぐ事ができるようになりました。

変更があったファイル

  • app/chickenpaint/ ディレクトリを上書きアップデート
  • app/neo/ ディレクトリを上書きアップデート
  • index.php

変更があったテンプレート

  • template/basic/js/common.js
  • template/basic/paint_neo.html

2026/06/04 v1.233.0

PaintBBS NEO更新

バグ修正

  • v1.5の時点から存在していたモバイル端末でBzの操作を完了しないまま、手書きや直線への切り換えを行った時にBzのハンドルが表示されたままになるバグを修正しました。

TS型解析ツールの警告を削減

  • ver1.6.60で「1000件以上あったTS型チェックの警告を10件に削減」したつもりになっていましたが、多くの型がanyになる事で警告がでなくなっていただけでした。
    型を明確にした結果、800件の警告が発生したため、JSDocの追加や修正を行い、コードそのものの書き直しを行いました。
    ライブラリとして使用しているlz-stringの警告は残っていますがあえて残しました。
    ライブラリがバージョンアップするたびにライブラリの警告を解消するための更新作業が発生するからです。

Neo.params

  • paramタグの代わりにObjectで設定するNeo.paramNeo.paramsに変更しました。
    設定項目が複数存在するため、複数形にしました。
    互換性を維持するため、v1.7.2で追加した単数形のNeo.paramでも設定できるようにしました。

変更があったファイル

  • app/neo/ ディレクトリを上書きアップデート
  • index.php

変更があったテンプレート

  • template/basic/paint_neo.html
  • template/basic/pch_view.html

2026/05/31 v1.232.0

PHPDoc、JSDocを追加

  • 今後の開発の継続のため、JSDoc、PHPDocを追加しました。
    これによりコード内に出現する関数をマウスオーバーするだけで確認できるようになります。

litaChix更新

  • 筆圧を使用して描線した時に、線のところどろこに細く薄いブロックが出現する問題がありました。
    問題解決のために試行錯誤を重ねてきましたが、ついにボトルネックになっている箇所を突き止める事ができました。
    1ピクセルを4x4=16階調で処理していた箇所を8x8=64階調でサンプリングする事でこの問題を解決する事ができました。
    これにより、これまでにない綺麗な線で描画できるようになりました。

image

PaintBBS NEO更新

  • 古いJavaを使っていた掲示板を使う事を想定して、appletタグとparamタグで設定していたNEOですが、新しく開発しているお絵かき掲示板でも、古いappletタグとparamタグを使う必要がありました。
    そのため、非推奨としてマークされているapplet、paramタグに依存しないNEOの設定ファイルの読み込みと起動ができるようにしました。
    これから作成する掲示板であれば従来よりも必要な文字の数も減り、作業効率もあがります。
    Petit Noteでは、この新しい設定ファイルを使って起動する方式を採用しました。
    万が一paramタグによる設定ファイルの読み込みができなくなったとしても、Chrome/Safariなどのモダンブラウザブラウザが推奨する機能で起動します。

変更があったファイル

  • app/axnos/ ディレクトリを上書きアップデート
  • app/chickenpaint/ ディレクトリを上書きアップデート
  • app/neo/ ディレクトリを上書きアップデート
  • functions.php
  • index.php
  • thumbnail_gd.inc.php

変更があったテンプレート

  • template/basic/js/common.js
  • template/basic/paint_neo.html
  • template/basic/pch_view.html

2026/05/23 v1.230.1

litaChix更新

  • TS型解析ツールを使用して、潜在的なバグを見つけ出し修正しました。
  • Blender(混色ブラシ)をマスクに使用した時に、オブジェクトがカラーである事を前提にしたメソッドを呼び出そうとしてエラーが発生していたのを修正しました。
  • どこからも呼び出されていないメモリ管理のコードを撤去しました。
  • TS型解析ツールの警告レベルは設定で緩くしてはいましたが、それでも数千件の警告がありました。
    それらのすべての警告をゼロにする事ができました。
  • litaChix起動のためのテンプレートのconst handleExit = ()=>{window.handleExit = ()=>{になりました。
    TS型解析ツールの警告を解消する時に、handleExit関数をwindow配下としたため、window配下に設定されないconstで定義した定数に代入した関数では動作しなくなりました。
  • Enterキー押下でカラーハーフトーンの確定ができなくなっていたバグを修正しました。

変更があったファイル

  • app/chickenpaint/ ディレクトリを上書きアップデート
  • index.php

変更があったテンプレート

  • template/basic/paint_chi.html
    HTML内のJavascriptの記述の変更があるため、このテンプレートの更新は必須になります。
    変更後は今回更新したlitaChixで動作するようになり、また以前のバージョンのlitaChixでも動作します。

2026/05/16 v1.228.1

litaChix更新

  • TS型解析ツールを使用して、潜在的なバグを見つけ出し修正しました。
    また、Object.create(Parent)による継承の書き方ではTS型解析ツールが継承した事を理解できず警告を出し続けるためclass構文のextendsを使用した継承に書き直しました。
    大規模なリファクタリングになりました。
  • ペンの不透明度の初期値をもっとも濃い255に変更しました。
  • 鉛筆の不透明度をもっとも濃い255に変更し、初期サイズを16に戻しました。
  • 筆圧が急激に変化しないようにするためのローパスフィルタがより強くかかるようになりました。
  • ペンと鉛筆の手ぶれ補正の初期値を5%から6%に変更しました。

PaintBBS NEO更新

  • TS型解析ツールを使用して、潜在的なバグを見つけ出し修正しました。
  • new(Parent)やObject.create(Parent)による継承をclass構文のextendsを使用した継承に書き直しました。

動的パレットスクリプトをリファクタリング

  • TS型解析ツールを使用して、潜在的なバグを見つけ出し修正しました。

変更があったファイル

  • app/chickenpaint/ ディレクトリを上書きアップデート
  • app/neo/ ディレクトリを上書きアップデート
  • index.php

変更があったテンプレート

  • template/basic/paint_neo.html

2026/05/02 v1.225.0

litaChix更新

  • 水彩ブラシを薄くしました。
  • 不透明度調整スライダーの値が低い時は緩やかに変化するようになりました。

PaintBBS NEO更新

  • ショートカットキーを追加しました。
    B:鉛筆・E:消しゴム・W:水彩・Delete|BackSpace:全消し(全消しツールへの切り替えではなく全消しが実行される)

変更があったファイル

  • app/chickenpaint/ ディレクトリを上書きアップデート
  • app/neo/ ディレクトリを上書きアップデート
  • index.php

2026/05/02 v1.223.0

litaChix更新

  • レイヤー名がダブルクリックで変更できなくなっていたのを修正しました。

変更があったファイル

  • app/chickenpaint/ ディレクトリを上書きアップデート

2026/05/02 v1.222.2

PaintBBS NEO更新

  • 手ぶれ補正が必要なのは主にキャンバスサイズが等倍または縮小されている時であるため、手ぶれ補正の強度を拡大時に弱めるようにしました。
    手ぶれ補正は線画には有効でも塗りには適さない場合があるため線の幅が8より大きな時にも弱めるようにしました。
    拡大時でかつ8より線の幅が大きな時は両方のルールが適用されより手ぶれ補正の強度が弱くなります。
  • NEOが起動するHTMLファイルにスクリプトを追加してiPadの意図しないダブルタップズームが発生しないようにしました。

未定義の可能性がある変数を初期化

  • 未定義の可能性がある変数を初期化して、静的解析ツールの警告を解消しました。

関数の引数に型を指定

  • 関数の引数の型を指定して、静的解析ツールの警告を解消しました。

変更があったファイル

  • app/neo/neo.js
  • functions.php
  • index.php
  • misskey_note.inc.php
  • noticemail.inc.php
  • save.inc.php
  • search.inc.php
  • thumbnail_gd.inc.php

変更があったテンプレート

  • template/basic/paint_neo.html

2026/04/29 v1.220.1

PaintBBS NEO更新

  • 最近の更新で発生したバグを修正しました。鉛筆・水彩ツールを切り替えた時に線幅が1pxにリセットされるバグを修正しました。
  • テキストツール以外のツールに切り替えても文字入力中画面が表示されたままになるバグを修正しました。
  • 傾けを使った時に空白になるはずの箇所に縞模様が出現する事がありました。
    これはオリジナルのPaintBBSの挙動を再現したものですが、ただ傾けたいだけの時には縞模様を消す手間がかかります。
    そのため追加された無効化オプションで縞模様の出現を無効化しました。

litaChix更新

  • カラーピッカーやスライダーを操作する時に、ペンを離しても値が変化しつづけて確定できない問題の報告が以前ありました。
    おそらく、touch-action:noneの指定がブラウザに解釈されなかった事が原因と思われますが、それらをサポートしていないブラウザでもpointermoveをJavascriptで無効化する事ができるため保険の意味合いもふくめてコードを修正しました。

変更があったファイル

  • app/chickenpaint/ ディレクトリを上書きアップデート
  • app/neo/ ディレクトリを上書きアップデート
  • index.php

変更があったテンプレート

  • template/basic/paint_neo.html

2026/04/27 v1.220.1

PaintBBS NEO更新

  • ダブルタップズームで意図しないズームが発生する事があるのを修正しました。

litaChix更新

  • 5未満の時のブラシサイズは0.5刻みになりました。1.5や3.5といった中間のサイズを選択できます。
    また、1から5の間のブラシサイズのスライダーを均等に割り、ブラシサイズの選択が容易になるようにしました。
  • 鉛筆の初期サイズは16から2になり、筆圧でブラシサイズが変わるようになりました。
    これまでは16pxで不透明度255、鉛筆というよりもベタ塗りのためのブラシ設定になっていました。
    もちろん、ツールオプションパレットで値を変更すれば従来と同じ設定に戻せます。
  • ペンの初期値の不透明度は250になりました。
    ペンなのに薄いという意見を反映して、ペンらしい不透明度に設定しました。

Tegaki更新

  • ダブルタップズームを防止する処理を追加しました。

変更があったファイル

  • app/chickenpaint/ ディレクトリを上書きアップデート
  • app/neo/ ディレクトリを上書きアップデート
  • app/tegaki/ ディレクトリを上書きアップデート
  • index.php

2026/04/25 v1.216.1

tegaki.js更新

  • 手のひらツールを追加する以前の動画データが再生できなくなっていたのを修正しました。

PaintBBS NEO更新

  • 手ぶれ補正レベルの補正の強度をさげました。
  • 複雑に入り組んでいた描画とスライダー操作のEventListenerをpointerEventsに統一しました。

変更があったファイル

  • app/neo/ ディレクトリを上書きアップデート
  • app/tegaki/ ディレクトリを上書きアップデート
  • index.php

2026/04/23 v1.215.2

tegaki.js更新

  • 大きなキャンバスを開いた時や、キャンバスを拡大した時に画面のスクロールができなかったモバイル端末のために、手のひらツールアイコンを追加しました。

image

  • しかしながら、スマホ+指で画面をスクロールする時の動作と同じタッチスクロール機能で画面をスクロールしているため、マウスでは動作しません。

PaintBBS NEO更新

  • 手ぶれ補正レベルの補正の強度をさげました。

変更があったファイル

  • app/neo/ ディレクトリを上書きアップデート
  • app/tegaki/ ディレクトリを上書きアップデート
  • index.php

2026/04/22 v1.212.5

tegaki.js更新

  • スペースキー押下で手のひらツールに切り換わるようにしました。
    (スクロールバーが表示されている場合のみ)

変更があったファイル

  • app/tegaki/tegaki.js
  • index.php

2026/04/20 v1.212.5

PaintBBS NEO更新

  • スペースキー押下で手のひらツールに切り換わらなくなる事があったのを修正しました。

変更があったファイル

  • app/neo/neo.js
  • index.php

2026/04/19 v1.212.2

PaintBBS NEO更新

  • 手ぶれ補正のレベルを変更できるようになりました。

image

0で補正なし、5で最強。

変更があったファイル

  • app/neo/neo.js
  • index.php

変更があったテンプレート

  • template/basic/paint_neo.html

2026/04/18 v1.211.1

PaintBBS NEO更新

  • 手ぶれ補正機能をつけした。
    PaintBBS NEOで2000x2000ピクセルといった大きなキャンバスで描画する時に、縮小機能を使う事があります。
    しかしながら、縮小したキャンバスに描画すると微細な手のふるえが記録されてしまい、等倍で表示すると、著しい線の振れになっていました。
    そのため、手ぶれ補正(スタビライザー)機能を追加しました。
    この機能は等倍で描画する時にも機能し、キャンバスの上でペンが滑る感覚を低減するのに役立ちます。
    手ぶれ補正機能は追加されましたが、PaintBBS特有のジャギーのある描線はもちろんそのままです。

個別スレッド表示時のカタログ表示の画像の並び方を逆順に

  • 個別スレッド表示時にカタログ表示すると、そのスレッドの画像の一覧が表示されます。
    これまでは、古い画像が上に表示されていましたが、新しい画像を上に表示するようにしました。
    スレッドの1番古い最初の投稿は1番下に表示されます。

変更があったファイル

  • app/neo/ ディレクトリを上書きアップデート
  • index.php

2026/04/14 v1.208.2

PaintBBS NEO更新

  • コピー操作のリセットを、「CTRL+Z」や「元に戻す」などのアンドゥでもできるようにしました。

litaChix更新

  • litaChixには全画面モードがあり、「Esc(エスケープ)キー」は、全画面モードの解除のためにブラウザに予約されています。
    そのため、これまで「Escキー」を使用していたキャンセル処理を「CTRL+Z(アンドゥ)」に移動します。
    たとえば、Bz曲線の描画中の取り消しは「CTRL+Z」または、「アンドゥボタン」。
    変形操作の取り消しも「CTRL+Z」または「アンドゥボタン」になりました。
    「Escキー」は、ブラウザの全画面表示の解除専用になりました。

変更があったファイル

  • app/neo/ ディレクトリを上書きアップデート
  • app/chickenpaint/ ディレクトリを上書きアップデート
  • index.php

2026/04/12 v1.207.2

NEO更新

しぃちゃんが作成したoekaki.htmlには次のような記述があります。

Escでコピーやベジエのリセット。(右クリックでも同じ)

オリジナルのPaintBBS v2.04やv2.19はこの説明書と同じ動作をします。
そのため、PaintBBS NEOでも、この操作説明書と同じ動作になるように機能を追加しました。

  • 右クリックによるベジェのリセット機能を追加しました。
  • 右クリックによるコピーのリセット機能を追加しました。
  • NEO v1.5.xの頃から存在していた、コピー操作キャンセル時に、コピー移動中画面の不透明度100%の画像が残る問題を修正しました。
  • コピーする選択範囲の確定時に、選択範囲内の画像がコピー移動中画面の不透明度100%の画像に切り替わる問題を修正しました。

litaChix更新

  • クセのある動作をしていたlitaChixのBz曲線を改修して、NEO、しぃペインターに近い動作になるようにしました。
    Bzの曲線を操作する2番目の直線のハンドルの開始位置を1番目の最後の位置にあわせました。
    Bzの操作途中にエスケープキー押下、または右クリックで操作をキャンセルします。

変更があったファイル

  • app/neo/ ディレクトリを上書きアップデート
  • app/chickenpaint/ ディレクトリを上書きアップデート
  • index.php

2026/04/08 v1.206.0

NEO更新

  • ペンを離した際に一瞬表示される、ベジェ曲線のプレビューの表示のぶれを修正しました。

litaChix更新

  • スポイトで取得した色を表示する円カーソルのサイズがひと回り小さくなりました。
    20pxから18pxになりました。色の付いた内側は18pxから16pxになりました。

変更があったファイル

  • app/neo/ ディレクトリを上書きアップデート
  • app/chickenpaint/ ディレクトリを上書きアップデート
  • index.php

2026/04/07 v1.205.2

NEO更新

  • PaintBBS NEOで使用しているすべてのidに接頭辞"neo-"が追加されました。

変更があったファイル

  • app/neo/neo.js
  • app/neo/neo.css
  • index.php

2026/04/06 v1.205.1

NEO更新

  • キャンバスサイズを「-」で縮小した時にレイアウトが崩れていたのを修正しました。
    (独自版のneo.cssに入れ替え)

動画再生時のURLを固定

  • 続きを描くたびにURLが変わっていた動画再生画面のURLを固定します。
    新しいURLの形式と古いURLの形式どちらからでも動画を再生できるようにしました。
    すでに外部からリンクが貼られている場合や、検索エンジンの検索結果にでてくる場合もある筈で、その場合は古いURLの形式でも再生できたほうがいいからです。
    また、これによりテンプレートの入れ替えが必須ではなくなります。(旧テンプレート互換)
    テンプレートを更新しない場合は、続きを描くたびに入れ替わる従来のURLになりますが、とくに問題は発生しません。

変更があったファイル

  • app/neo/neo.css
  • index.php

変更があったテンプレート

  • template/basic/parts/threads_loop.html
    テンプレートの更新は必須ではありません。動画再生のURLが続きを描くたびに入れ替わる以前の動作のままになるだけです。

2026/04/06 v1.202.5

litaChix更新

  • colorPickerモードのprototypeの記述を修正しました。

NEO更新

  • idの衝突を回避するためidに接頭辞-neoを追加しました。

変更があったファイル

  • app/neo/neo.js
  • app/neo/neo.css
  • app/chickenpaint/ ディレクトリを上書きアップデート
  • index.php

2026/04/05 v1.202.5

litaChix更新

  • iOSでメニューがタップできなくなっていた可能性があったのを修正しました。

変更があったファイル

  • app/chickenpaint/ ディレクトリを上書きアップデート
  • index.php

2026/04/04 v1.202.2

litaChix更新

  • スポイトで取得した色を円カーソルで表示します。

image

変更があったファイル

  • app/chickenpaint/ ディレクトリを上書きアップデート
  • app/klecks/ ディレクトリを上書きアップデート
  • index.php

2026/04/01 v1.201.3

litaChix更新

  • スポイトの色の取得先が「表示色を取得」の時にも「非表示レイヤーです。」というエラーメッセージが表示されていたのを修正しました。

変更があったファイル

  • app/chickenpaint/ ディレクトリを上書きアップデート
  • index.php

2026/04/01 v1.201.2

litaChix更新

  • スポイトのツールオプションパネルのラベルの上にマウスを乗せてもクリック可能な指の形のカーソルにならなかったのを修正しました。
  • 青色の配色を微調整しました。
  • 変形時の「非表示レイヤーです。」「レイヤーの不透明度が0%です。」といったメッセージがでるタイミングを調整しました。
    これまではメニュー→編集をタップした時点でこれらのメッセージが表示されていました。
  • 非表示レイヤーから色をスポイトしようとした時に「非表示レイヤーです。」「レイヤーの不透明度が0%です。」といったメッセージを出して処理を中断するようになりました。

変更があったファイル

  • app/chickenpaint/ ディレクトリを上書きアップデート
  • index.php

2026/03/30 v1.201.2

litaChix更新

  • レイヤーの完全に透明な箇所をスポイトしても色を取得をしなくなりました。
    透明な箇所をスポイトした時は、直前の色のまま保持され変化しなくなりました。
    これはFireAlpacaやKritaと同じ動作です。
    これまでは、レイヤーの透明の中の見えない白色や黒色を取得していました。
  • ショートカットキーによって動作が一時的に変更した時に、機能をしめすカーソル形状が一致しなくなる事があったのを修正しました。
  • 連続した同じキーからの入力を検出した時は、一回目のみ処理するようになりました。
    これまではタブキーを押し続けるとUIの表示と非表示の切り替わりが延々と行われていましたが、今はUIの表示か非表示のどちらか一回しか実行されません。
    同じ処理の繰り返しの防止になり、デバイスの負荷も下がります。

変更があったファイル

  • app/chickenpaint/ ディレクトリを上書きアップデート
  • index.php

2026/03/29 v1.200.6

litaChix更新

  • スポイトする対象を「表示色」と「レイヤーの色」から選択できるようにしました。
    乗算やオーバーレイなどのレイヤー効果で表示色と個別レイヤーの色が一致しなくなる事があります。
    そして、これまではその個別のアクティブレイヤーから色をスポイトする方法がありませんでした。
    クリスタやFireAlpacaでは、画面全体の表示色とレイヤーの色のどちらから色を取得するのか選択する事ができます。
    それにならって、litaChixでも画面全体の色とレイヤーの色のどちらから色を取得するのかを選択できるようにしました。
image

変更があったファイル

  • app/chickenpaint/ ディレクトリを上書きアップデート
  • index.php

2026/03/25 v1.199.0

litaChix更新

  • 混色ブラシツールの混色処理を改善しました。
    レイヤーの透明な箇所から不透明な箇所に向かって混色ブラシでストロークした時に、透明と混ざるようになりました。
    透明が混色ブラシによって引き伸ばされた箇所は透明になります。
image

変更があったファイル

  • app/chickenpaint/ ディレクトリを上書きアップデート
  • index.php

2026/03/23 v1.198.1

PaintBBS NEO更新

  • 縮小率、80%、60%、40%、20%が選択可能になりました。
    100%から20%ずつ縮小します。
  • 四角ツールで長方形の範囲を塗り潰す時の長方形の色の反転領域が作業を終了したあとも残るバグを修正しました。
    このバグはNEOのv1.6.25 (2026/03/15)で発生しv1.6.26で修正されました。

変更があったファイル

  • app/neo/ ディレクトリを上書きアップデート
  • index.php

2026/03/22 v1.197.12

litaChix更新

  • 混色ブラシを改善しました。水彩ブラシの混色処理を使用して、自然な混色になるようにしました。

変更があったファイル

  • app/chickenpaint/ ディレクトリを上書きアップデート
  • index.php

2026/03/18 v1.197.11

tegaki.js更新

  • 1倍未満の時の表示倍率を0.5倍,、0.6倍、 0.7倍、 0.8倍、 0.9倍、1.0倍のように細かく設定できるようにしました。
  • 動画再生時にズームを使用して巻き戻した時に1.0倍にリセットされるようになりました。
  • モバイル端末で動画を再生した時にキャンバスをタッチ操作でスクロールできるようになりました。

変更があったファイル

  • app/tegaki/ ディレクトリを上書きアップデート
  • index.php

変更があったテンプレート

  • template/basic/tgkr_view.html

2026/03/18 v1.197.8

litaChix更新

  • レイヤーの不透明度が0%または非表示だった時はツールオプションパレットから変形した時にも警告を出して操作を停止するようになりました。

変更があったファイル

  • app/chickenpaint/ ディレクトリを上書きアップデート
  • index.php

2026/03/17 v1.197.7

litaChix更新

  • 移動ツールのツールオプションパネルに「複製」チェックボックスが付きました。
    「複製」にチェックが入っている時は、対象を複製したものを移動します。
image

変更があったファイル

  • app/tegaki/ ディレクトリを上書きアップデート
  • app/chickenpaint/ ディレクトリを上書きアップデート
  • index.php

2026/03/17 v1.197.6

tegaki.js更新

  • 途切れ途切れに表示されていた50%縮小表示の時の描線をつながった描線として表示できるようにしました。

litaChix更新

  • altキーを押しながら移動ツールで移動した時にctrl+altキー同時押しの時にも複製されてしまう問題を修正しました。
    altキーのみの押下で複製になるようにしました。

変更があったファイル

  • app/tegaki/ ディレクトリを上書きアップデート
  • app/chickenpaint/ ディレクトリを上書きアップデート
  • index.php

2026/03/15 v1.197.5

PaintBBS NEO更新

  • コピー・レイヤー結合時操作の画面全体更新の回数を最適化して負荷を削減しました。
    大きなキャンバスサイズの時に上記操作が重くなり、操作が困難になっていたのを修正しました。

変更があったファイル

  • app/neo/ ディレクトリを上書きアップデート
  • index.php

2026/03/15 v1.197.3

litaChix更新

  • 変形操作中にオートセーブが作動して変形確定ダイヤログが表示される事があったのを修正しました。
  • 負荷が高い変形・移動と負荷が高いオートセーブが同時に実行されるのを回避します。
    変形・移動モード選択中はオートセーブを実行しなくなりました。

変更があったファイル

  • app/chickenpaint/ ディレクトリを上書きアップデート
  • index.php

2026/03/15 v1.197.1

Klecks更新

  • Klecksを最新版に更新しました。
    変形機能にメッシュ状のゆがみツールが追加されました。

変更があったファイル

  • app/klecks/ ディレクトリを上書きアップデート
  • index.php

2026/03/14 v1.197.0

PaintBBS NEO更新

  • NEO更新。窓モードで縮小表示した時に画面スクロールが重くて操作不能に近い状態になっていたのを修正しました。
    この問題は2000x2000のようなきわめて大きなキャンバスサイズの時に発生していました。
    この問題を解決するため、縮小表示の描画品質を調整しスクロール時の画面再描画の回数を最適化しました。
    今はスムーズにスクロールできます。

変更があったファイル

  • app/neo/ ディレクトリを上書きアップデート
  • index.php

2026/03/09 v1.196.1

litaChix更新

  • 移動・変形時の描画回数を減らし、デバイスの負荷を削減しました。

変更があったファイル

  • app/chickenpaint/ ディレクトリを上書きアップデート
  • index.php

2026/03/09 v1.196.0

litaChix更新

  • 保存圧縮処理のメモリ使用量を下げました。iPadなどでオートセーブ中にメモリが圧迫されるのを回避します。
  • 描画中に頻繁に呼び出されるイベントリスナーが重複していたのを整理しました。
  • 単色ノイズはこれまで指定色と白でしたが、指定色が白の時にはただの真っ白になっていました。
    そのため、指定色と透明で構成されたノイズを出力するようになりました。
    これにより白い粒子などの表現が可能になります。

変更があったファイル

  • app/chickenpaint/ ディレクトリを上書きアップデート
  • index.php

2026/03/05 v1.195.1

AXNOS Paint更新

  • レイヤーサムネイルとナビゲーターのサムネイルの更新頻度を下げて、メインのキャンバスの描画を高速化しました。

変更があったファイル

  • app/axnos/ ディレクトリを上書きアップデート
  • index.php

2026/03/02 v1.193.7

  • Lightbox v2.12.0で画像のコピーができなくなっていたのを修正しました。
  • AXNOS Paintを更新しました。
  • litachixを更新しました。

変更があったファイル

  • app/axnos/ ディレクトリを上書きアップデート
  • app/chickenpaint/ ディレクトリを上書きアップデート
  • lib/lightbox/ ディレクトリを上書きアップデート
  • index.php

2026/03/01 v1.193.1

Lightbox v2.12.0

  • 2月28日にリリースされた Lightbox v2.12.0をベースに、この掲示板で使うために再度カスタマイズしたものを同梱しました。
  • メモリーリークなどが解消されています。

エルビス演算子

  • ほんのわずかでもエルビス演算子のほうが三項演算子よりも動作が速いと知り、可読性やバグの発生の可能性の低減がみこまれる事などからエルビス演算子にできる箇所はエルビス演算子を使うように統一しました。

変更があったファイル

  • functions.php
  • index.php
  • misskey_note.inc.php
  • lib/lightbox/ ディレクトリを上書きアップデート

2026/02/26 v1.192.1

  • ログファイルに記録されているマイクロ秒の処理をより安全な計算になるようにしました。
    ログファイルの破損などにより計算が失敗した時はmicrotime2time()関数が0を返すようになりました。

変更があったファイル

  • functions.php
  • index.php

2026/02/23 v1.191.3

メモリ節約

  • 使い終わった配列をunsetしてメモリを節約しました。

POST可能な最大値の計算

  • POST可能な最大値の計算をphp.iniの設定をもとに計算する時にバグが発生する可能性のある箇所を修正しました。
  • あいまいなキャストで数値に変換している箇所の数値と文字列を分離するようにしました。
    このあいまいなキャストによる数値への変換は将来のバージョンのPHPでは動作しなくなる可能性があるからです。

変更があったファイル

  • app/chickenpaint/ ディレクトリを上書きアップデート
  • functions.php
  • index.php
  • search.inc.php

2026/02/23 v1.190.1

litaChix更新

バグ修正

  • ファイルメニューから「PNGで保存」「ZIPで保存」した時に、ブラウザのデータベースに保存していたバックアップデータが消えてしまっていました。
    そのため、ファイルメニューから「PNGで保存」した直後にリロードしたり画面を移動した時に、描画途中のデータが復元されなくなっていました。
    該当箇所の引数を修正して、この問題を修正しました。

変更があったファイル

  • app/chickenpaint/ ディレクトリを上書きアップデート
  • index.php

2026/02/22 v1.190.0

litaChix更新

  • これまでは「輝度を透明度に変換」した時に、「透明」と不透明あるいは半透明の「黒」に変換されていました。
  • 今回の更新で「透明」あるいはカラーピッカーで指定した「描画色」に変換されるようになりました。
    白い背景に黒い線画を描いてこのフィルタを実行すると、「透明」と「黒い線」ではなく、線の色が「カラーピッカーで選択した描画色」になります。

変更があったファイル

  • app/chickenpaint/ ディレクトリを上書きアップデート
  • index.php

2026/02/21 v1.189.1

litaChix更新

  • 「メニュー>バックアップをブラウザに保存」の操作の時のUI/UXをモーダルに変更しました。
    これまでは、メニューを押下した10秒後にブラウザに保存したことを知らせるアラートが突然開く事がありました。
    この問題を解決するため操作直後にすぐに準備中である事を知らせるモーダルを開きます。処理が完了時したら処理が完了したことを知らせる通知を出します。
    ほとんどの場合、この処理は一瞬で終わりますが、キャンバスサイズが2000x2000で、レイヤー枚数が50枚以上ある時などは10秒ほどの待機時間が発生する事があります。
    そのため、準備中である事、処理に数秒を要する場合がある事を事前に知らせるようにしました。

1

2

変更があったファイル

  • app/chickenpaint/ ディレクトリを上書きアップデート
  • index.php

2026/02/19 v1.188.1

litaChix更新

  • 保存処理を高速化しました。
  • 「線の色を描画色に保存」フィルタを追加しました。
    線の色をカラーピッカーで選択中の色に一瞬で変更する事ができます。
    黒い線で書いてしまったけれど、下描きの青色の線に変更したい時などにご利用いただけます。
    (実際には線だけでなく不透明な箇所の色をすべて変更します。)

変更があったファイル

  • app/chickenpaint/ ディレクトリを上書きアップデート
  • index.php

2026/02/17 v1.187.2

litaChix更新

  • ウェブワーカー非使用バージョンの処理を高速化しました。

変更があったファイル

  • app/chickenpaint/ ディレクトリを上書きアップデート
  • index.php

2026/02/16 v1.187.1

litaChix更新

ユーザの環境によって保存できなくなる問題を修正

  • サーバの設定やユーザのセキュリティソフトや広告ブロックによってv1.183.0で追加したlitaChixのウェブワーカーがブロックされてしまい、投稿できなくなるケースがある問題を修正しました。
  • ウェブワーカーの使用をやめfflateの別の機能でオートセーブ時のスムーズな描画を実現しました。

変更があったファイル

  • app/chickenpaint/ ディレクトリを上書きアップデート
  • index.php

2026/02/15 v1.186.6

litaChix更新

  • 数値が低い時はスライダーをより緩やかに。ペンと鉛筆の手ぶれ補正の初期値を1%から2%に。

変更があったファイル

  • app/chickenpaint/ ディレクトリを上書きアップデート
  • index.php

2026/02/15 v1.186.5

litaChix更新

  • ファイルメニューから投稿できなくなっていたのを修正しました。
    (フロッピーアイコンからの投稿はできていまいた)

変更があったファイル

  • app/chickenpaint/ ディレクトリを上書きアップデート
  • index.php

2026/02/14 v1.186.3

litaChix更新

  • 筆圧のローパスフィルタを調整しました。
  • ストローク開始時にはフィルタをかけないようにして、フィルタをかけた時に描線が細くなりすぎないようにしました。

変更があったファイル

  • app/chickenpaint/ ディレクトリを上書きアップデート
  • index.php

2026/02/13 v1.186.1

litaChix更新

  • 筆圧のローパスフィルタを調整しました。

変更があったファイル

  • app/chickenpaint/ ディレクトリを上書きアップデート
  • index.php

2026/02/12 v1.186.0

litaChix更新

  • キャンバスの回転、手のひらツール使用時にのみ有効なピンチズームのためのTouchEventが、描画時にも有効になっていたのを修正しました。
  • TouchEventによって描画時に遅延が発生していたのを修正しました。

絵文字が拒絶されていたのを修正

  • v1.179.1で追加したZalgo text(ザルゴ・テキスト)を拒絶する正規表現によって、正当な絵文字まで拒絶されていたのを修正しました。

変更があったファイル

  • app/chickenpaint/ ディレクトリを上書きアップデート
  • index.php

2026/02/11 v1.185.0

litaChix更新

  • レイヤー情報ファイル「.chi」の圧縮レベルを7から6に変更しました。
  • ごくわずかなファイルサイズの増加になりますが、圧縮時のCPU負荷が低減し処理が高速になります。

ファイルの存在確認をしてから削除する処理の見直し

  • ファイルの存在確認をしてファイルが存在していたら削除を実行する関数で、存在しないファイルを削除しようとしてエラーが発生するケースがあったのを修正しました。
    is_file()関数は状態をキャッシュするため、確認の前にキャッシュを削除します。

変更があったファイル

  • app/chickenpaint/ ディレクトリを上書きアップデート
  • index.php

2026/02/10 v1.183.2

litaChix更新

  • ブラウザへのバックアップ保存に失敗した時にもバックアップありのフラグが保存されてしまう事があったのを修正しました。
  • バックアップデータが存在しない時にデータを読み込もうとして致命的エラーになる場合があるのを修正しました。
  • 続きを描く時のレイヤー情報の読み込み処理を非同期化してスムーズに起動するようにしました。

変更があったファイル

  • app/chickenpaint/ ディレクトリを上書きアップデート
  • index.php

2026/02/09 v1.183.1

litaChix更新

  • 圧縮処理の高速化と別スレッド化で圧縮時のオートセーブの描画遅延は解消しましたが、レイヤー情報の取得処理で200msもの遅延が発生する状態になっていました。
    該当箇所の処理を非同期化してこの問題を修正しました。

変更があったファイル

  • app/chickenpaint/ ディレクトリを上書きアップデート
  • index.php

2026/02/09 v1.183.0

litaChix更新

  • データ圧縮ライブラリを「pako」から「fflate」に変更して高速化しました。
    単に速度が向上しただけでなく、ウェブワーカーにより、重い圧縮処理を別スレッドに分離します。
    これによりオートセーブの影響を受ける事なく快適に描画を続行できます。
    すでに改良をすすめ、オートセーブ時の影響は最小になっていましたが、巨大なキャンバスと多くのレイヤーがある時にごくわずかとはいえ、「今オートセーブ処理が入った」とわかる程度の遅延がありました。
    今回の更新でオートセーブによる遅延問題を根本的に解決しました。

変更があったファイル

  • app/chickenpaint/ ディレクトリを上書きアップデート
  • index.php

2026/02/08 v1.182.0

litaChix更新

  • オートセーブ機能を調整しました。
    60ストロークと2分間隔のオートセーブが同時に実行されていたのを修正しました。
    一度オートセーブが実行された時から60ストロークまたは2分で保存します。
    オートセーブの実行時にリセットします。

Klecks更新

  • Klecksを更新しました。

変更があったファイル

  • app/chickenpaint/ ディレクトリを上書きアップデート
  • app/klecks/ ディレクトリを上書きアップデート
  • index.php

2026/02/06 v1.181.6

litaChix更新

litaChix に画像消失を防止するオートセーブ機能を高速化

  • 描画中にオートセーブが実行された時にペンが一時的に止まる感触があったのを修正しました。

変更があったファイル

  • app/chickenpaint/ ディレクトリを上書きアップデート
  • index.php

2026/02/06 v1.181.5

litaChix更新

litaChix に画像消失を防止するオートセーブ機能を追加

  • ブラウザのメモリセーバー機能で画像が破棄された場合や、ページ移動やブラウザを誤って閉じてしまった時に、オートセーブから復元できるようになりました。

  • ブラウザのローカルデータベース(IndexedDB)に未保存のデータをバックアップします。
    「2分経過後の最初のストローク」または「60ストローク」ごとにオートセーブします。

  • 「未保存のデータがあります。復元しますか?」という確認ダイアログが開いた時に「OK」を選択すると復元します。
    ただし、「キャンセル」を選択するとオートセーブしたバックアップデータは消えてしまいますのでご注意ください。

  • これまでは「PaintBBS NEO」と「AXNOS Paint」にだけ自動バックアップ機能が存在していました。
    今回の更新で、「PaintBBS NEO」と「AXNOS Paint」「litaChix」の3つのペイントツールでデーター消失を防止する自動バックアップ機能が使えるようになりました。

image

変更があったファイル

  • app/chickenpaint/ ディレクトリを上書きアップデート
  • index.php

2026/02/03 v1.180.0

litaChix更新

ブラシサイズを変更するショートカットキー「CTLRL+ALT+ドラッグ」を追加

  • Corel Painter、クリスタ、FireAlpacaなど一般的なペイントツールでは標準の、「CTLRL+ALT+ドラッグ」によるブラシサイズの変更ができるようになりました。
    ブラシサイズを変更するショートカットキー[ ]も引き続き使用できます。

変更があったファイル

  • app/chickenpaint/ ディレクトリを上書きアップデート
  • index.php

2026/02/01 v1.179.1

litaChixの線の質を向上

  • 筆圧を敏感に拾ってしまいブラシサイズが均一にならない問題を修正しました。
    ローパスフィルタを使用して筆圧によるブラシサイズが急激に変化しないようにしました。
  • 浮動小数点で計算が可能な箇所は極力浮動小数点で計算し、ブラシサイズが整数値で極端に変化しないようにしました。

Zalgo スタイルのテキスト (Unicode 結合記号を使用したテキスト) 対策

  • Zalgo スタイルのテキスト (Unicode 結合記号を使用したテキスト) によるコメント欄の表示崩れを防止するため、Zalgo文字を禁止文字列に指定しました。
    ただし管理者パスワードや管理者ログイン時には入力可能です。

変更があったファイル

  • app/chickenpaint/ ディレクトリを上書きアップデート
  • functions.php
  • index.php

2026/01/27 v1.178.3

AXNOS Paint更新

  • さとぴあ改造版のAXNOS Paintが、スマホで正常に動作しなくなっていたのを修正しました。

変更があったファイル

  • app/axnos/ ディレクトリを上書きアップデート
  • index.php

2026/01/27 v1.178.2

litaChix更新

  • レイヤーグループ選択中時、マスク編集時のメニューのグレーアウト判定を見直しました。
    全体に適用結合レイヤーを追加のチェックボックスがある効果メニューは、フォルダ選択時にも操作可能になるようにしました。

変更があったファイル

  • app/chickenpaint/ ディレクトリを上書きアップデート
  • index.php

2026/01/26 v1.178.1

litaChix更新

  • レイヤーグループ選択中には操作できない 「単色ハーフトーン」 「モザイク」がクリック可能になっていたのを修正しました。
    レイヤーグループ選択中は、グレーアウトしてクリックできなくします。
  • 描線がカクカクする問題の修正はブラシサイズ16px以下限定でしたが、32px以下まで拡張されました。
    ブラシサイズ32pxでも高精度なイベントを取得します。
  • 高精度なイベントを処理するための判定処理を最適化し負荷を削減しました。

変更があったファイル

  • app/chickenpaint/ ディレクトリを上書きアップデート
  • app/klecks/ ディレクトリを上書きアップデート
  • index.php

2026/01/23 v1.178.0

litaChix更新

image

  • レイヤーの透明/不透明の境界部分を縁取る「縁取り」フィルタを追加しました。
    カラーピッカーで選択中の色で縁取ります。
  • モノクロハーフトーンはこれまでは黒いドットでしたが、これを単色ハーフトーンに改良して、カラーピッカーで選択中の色でドットを描写するようになりました。
  • 単色ノイズ機能を改良して、カラーピッカーで選択中の色でノイズを作成するようになりました。
  • マスク編集中に使用できないフィルタは効果メニューの一覧表示時にグレーアウトして最初からクリックできなくなりました。
  • マスク編集時に「テクスチャで消去」を実行した時にエラーになっていたのを修正しました。

変更があったファイル

  • app/chickenpaint/
  • index.php

2026/01/20 v1.175.1

Lightbox更新

  • Lightbox2にjQuery4で非推奨になったコードが使用されていたため、独自に修正しました。

変更があったファイル

  • lib/lightbox/ ディレクトリを上書きアップデート
  • index.php

2026/01/20 v1.175.0

PaintBBS NEOとlitaChixを更新

  • 素早くペンを動かした時のカクツキを解消する条件を最適化しました。
    これまではブラシサイズが10px以下の時にのみ高精度なイベントを取得してカクツキを解消していましたが、16px以下に条件が緩和されました。
    より大きなブラシでストロークした時にもカクツキが解消されます。
  • 描画していない、浮動カーソルの時にも高精度なイベントを取得していましたが、負荷が高くなるだけで意味がないため描画時にのみ高精度なイベントを取得するようになりました。

jQuery更新

  • 10年ぶりのメジャーリリスになるjQuery4.0.0に更新しました。
    現在は、jQueryを画像のポップアップ表示にのみ使用しています。

変更があったファイル

  • app/chickenpaint/
  • app/neo/
  • index.php

追加されたファイル

  • lib/jquery-4.0.0.min.js
    (ファイルの存在チェックを行っているためこのファイルのアップロードを忘れると起動しなくなります)

2026/01/17 v1.173.2

PaintBBS NEOとlitaChixを更新

素早くペンを動かした時に描線のカクツキが発生する問題を修正しました

  • PaintBBS NEOと、litaChixの両方に存在していた、素早くペンを動かした時の描線のカクツキを修正しました。
    ペンの動きが素早い時に、ポインターイベントが不足して描線が曲線にならず角になっていたのを修正しました。
    ブラウザによって間引かれたポインターイベントをもとに戻す処理を追加してこの問題を修正しました。
    しかしながら、太いブラシでより多くのイベントを処理すると端末の負荷が高まり、動作不良につながります。
    そのため線画の品質確保に必要な10px以下のブラシに限りより多くのペンの移動イベントを取得するようにしました。
    11px以上の時は従来と同じ動作になります。

oekaki_2026_01_17_06_44_30


修正前。曲線部分がカクカクしています。

oekaki_2026_01_17_06_44_20


修正後。曲線が正しく描画されてます。

変更があったファイル

  • app/chickenpaint/ ディレクトリを上書きアップデート
  • app/neo/ ディレクトリを上書きアップデート
  • index.php

2026/01/15 v1.172.6

litaChix更新

  • カラーセットやメニューの項目を長押しした時に、Chromeの分割ビュー(分割タブ表示)が意図せず開いていたのを修正しました。
  • また、ペイントツールの更新というよりも掲示板の機能の更新内容になりますが、作成したカラーセットの色見本を続きを描く時にロードできるようになりました。
    これにより、続きを描く画面でカラーセットの色見本を引き継ぐ事ができるようになりました。

添付ファイルがJPEGの時はJPEGで保存

  • 位置情報の削除処理時にアップロード画像をWebP形式に変換していましたが、もとの画像形式がJPEGの時はJPEGで保存するようになりました。
    (掲示板に投稿した画像のまとめをpixivに投稿しようと思ったらpixivがWebP非対応といったトラブル回避のため)

細かなバグが修正されました

  • 画像の回転情報のExifが付いたJPEG画像がPNG形式で保存されるケースがあったのを修正しました。
  • 記事の編集画面から「スレッドにもどる」時に、該当スレッドの記事の位置に正しくスクロールするようになりました。

変更があったファイル

  • app/axnos/ ディレクトリを上書きアップデート
  • app/chickenpaint/ ディレクトリを上書きアップデート
  • app/klecks/ ディレクトリを上書きアップデート
  • functions.php
  • index.php
  • save.inc.php
  • thumbnail_gd.inc.php

変更があったテンプレート

  • template/basic/paint_chi.html

2026/01/04 v1.169.1

位置情報が入った写真が公開されるリスクを軽減

位置情報(Exifなどに含まれる)をより徹底的に削除するようになりました

  • スマホで撮影した写真には位置情報(GPSデータ)が入っている事があります。
    位置情報が付くスマホの「写真」には、自宅で撮影した「イラスト」の写真も含まれます。
    これまでは、画像の形式がjpegで、PHPが位置情報を検出した場合にのみGDで新しく画像を作り直して情報を削除していました。
    また、初期設定値であれば幸いな事にスマホの写真のサイズは1024pxを超えている事がほとんどのため、画像のリサイズ処理が行われた時に位置情報が消えていました。
    しかしながら、WebP形式やPNG形式画像にもExifなどに含まれる位置情報(GPSデータ)が入ります。
    これをxnViewなどの画像ビューワーであらかじめリサイズされる制限値より小さなサイズにリサイズすると、掲示板のPHPのリサイズ処理は入らないため、そのままアップロードされていました。
    PNG形式・WebP形式の画像ファイルの位置情報の有無はPHPでは検出する事ができないため、位置情報のチェック処理が機能していませんでした。
    そのため位置情報の検出の有無に関わらず、GDで画像を作り直して上書きします。
    これによりすべてのアップロード画像のExifそのほかの位置情報を消去します。
  • ただしGDが機能しない場合もありえるため、あらかじめ位置情報が公開される事が無いようにカメラの設定や公開する画像の情報の確認をお願いします。
  • 通常のレンタルサーバの環境であれば、GDで作成された画像で毎回上書きされ、位置情報は残らななくなるものと思われますが、バグが100%無い事を保証する事は困難なため、位置情報が100%消える事も保証できません。
    十分にご注意ください。

変更があったファイル

  • functions.php
  • index.php
  • thumbnail_gd.inc.php

2025/12/31 v1.168.3

「litaChix」更新

image

  • カラーハーフトーンフィルタ、モノクロハーフトーンフィルタを付けました。
  • 出現するトーンのドットの背景は透明になる仕様です。それを利用してクリッピングレイヤーで色を変更する事が可能になります。
  • たとえば、キャラクターの周囲をグレーで塗り潰して、それをぼかしフィルタでぼかして、モノクロハーフトーンフィルタで網点に変換。その後、その網点をクリッピングレイヤーで色を付ければ、黒いドットは赤や青のドットになります。
  • カラーハーフトーンフィルタは全体に適用結合レイヤーを追加時には自動的に乗算レイヤーになります。

変更があったファイル

  • app/chickenpaint/ ディレクトリを上書きアップデート
  • index.php

2025/12/28 v1.166.1

「litaChix」更新

  • 効果メニューの「色収差フィルタ」がより実用的になりました。
  • 色の出現が、左からシアン・マゼンタ・イエローになりました。
    これはクリスタの色収差フィルタと同じ並び方です。
    たとえば、以前は、人物画に色収差フィルタをかけると目のまぶたたの上にイエローが出現していましたが、今はシアン(青系)・マゼンタ(赤系)・イエロー(黄)の順です。
  • 色のずれ方をX軸(横)Y軸(縦)それぞれに設定できるようになりました。負の値も設定可能です。

「Klecks」更新

  • 高度なレイヤー結合のショートカットキー「ctrl+shift+e」が追加されました。

静的解析ツールの警告を解消

  • 実行時エラーではないものの、グローバル変数ではtrue/falseのbool値で、ローカル変数では配列になっている箇所が静的解析ツールによる警告の対象となっていました。
    そのため、テンプレートを含む該当箇所を修正しました。
  • テンプレートをカスタマイズしているユーザーの事を考慮して、以前のテンプレートのままでも動作するようにはしましたが、この問題を修正するため、テンプレートを更新しています。
    template/basic/parts/res_view_other_works_loop.html
    に、レス画面下段の前後のスレッドの画像一覧を表示する箇所を分離していますので、テンプレートの追加をよろしくお願いします。

このテンプレートがアップロードされていない状態でtemplate/basic/res.htmlを更新するとPHPのエラーになりますので、2つ同時に更新するか、カスタマイズしている場合は、template/basic/res.htmlを更新せずにそのままお使いください。
現時点のPHP8.5では実行時エラーも警告もでません。

変更があったファイル

  • app/chickenpaint/
  • app/klecks/
  • index.php

変更があったテンプレート

  • template/basic/parts/res_view_other_works_loop.html
  • template/basic/res.html

2025/12/19 v1.163.1

「litaChix」更新

  • モザイク(ピクセレート)フィルタを追加しました。

image

変更があったファイル

  • app/chickenpaint/ ディレクトリを上書きアップデート
  • index.php

2025/12/17 v1.162.1

「litaChix」更新

  • ペンの先を「角ピクセル」にした時の描画品質を向上させました。
  • 横幅によってはアイコンがずれて表示される事があったのを修正しました。

「AXNOS Paint」更新

  • 最大で2000pxまで指定可能にしました。(従来は1800px)

変更があったファイル

  • app/axnos/ ディレクトリを上書きアップデート
  • app/chickenpaint/ ディレクトリを上書きアップデート
  • index.php

2025/12/11 v1.161.11

「litaChix」更新

「円ハードエッジ」以外の時の描画品質を向上

  • litaChixを更新しました。ペン先が「円ハードエッジ」以外の時の描画品質が向上しました。
    これまでは、「円ソフト」等を選択して細い線を描く時に筆圧によって線がまったく描かれない箇所が発生して線が途切れていました。
    また、突然線が太くなる段差が発生していました。
    線が途切れず、突然太くならないように調整しました。
不透明度255の時のペンの濃さを調整
  • ペンでブラシの不透明度の最大値255に設定しても薄かったため、不透明度131-255の範囲のブラシの実際の濃さを調整し濃くなるようにしました。
    UIで設定可能な最大値ではなく、内部処理にも最大値があります。その最大の濃さにするとアンチエイリアスの品質に問題がでます。 そのため、ほかのペイントツールのペンの実際の色をスポイトして調査し、一般的なペイントツールのペンの濃さと近くなるようにしました。

変更があったファイル

  • app/chickenpaint/ ディレクトリを上書きアップデート
  • index.php

2025/12/07 v1.160.1

「litaChix」の大きなバグを修正

  • v1.160.0でズームアウト時のスムージングの品質を「高」に設定しましたが、それが原因でlitaChixの描画速度が極端に落ちてしまい、描画遅延が発生していました。
    そのため、描画の遅延が発生しない以前の設定にもどしました。

変更があったファイル

  • app/chickenpaint/ ディレクトリを上書きアップデート
  • index.php

2025/12/06 v1.160.0

「litaChix」更新

  • 全画面モードが付きました。モニターの画面全体に動画を表示する時のように、ペイント画面を全画面モードで表示します。
    フルスクリーンモードアイコンをタップで全画面モード。もう一度フルスクリーンアイコンをタップで全画面モードを終了。または
    ESCキー押下で全画面モードを終了します。

image

  • メニューバーの上下の余白が広すぎて画面を有効活用できなかった問題を修正しました。
    ズームアウト時の線画のアンチエイリアスの品質が向上しました。
    これまでは30%前後まで縮小した時にジャギーが発生していましたが、スムースに表示できるようになりました。

変更があったファイル

  • app/chickenpaint/ ディレクトリを上書きアップデート
  • index.php

2025/12/03 v1.158.5

「litaChix」更新

  • 「消去」「塗り潰し」「変形」「選択解除」アイコンが太すぎたため、SVGアイコンウェイトを600から500に変更しました。
  • 上部のパレット表示/非表示ボタンと「消去」「塗り潰し」「変形」「選択解除」アイコンの表示位置が常に右揃えになるようにしました。
image

変更があったファイル

  • app/chickenpaint/ ディレクトリを上書きアップデート
  • index.php

2025/12/02 v1.158.3

「litaChix」を大幅にアップデート

選択範囲がかかっている事がわかりやすくなりました

  • これまでは、選択範囲がかかっていても選択領域に点線の枠が表示されるのみでした。
    きわめて小さな選択範囲がかかっているときに「塗り潰しができない」「描画できない」等の問題が発生する事がありました。

  • そのため選択範囲の外側に半透明のグレーを乗せて暗くし、その範囲には描画できない事を明確にしました。
    選択範囲がかかっている時は「選択解除アイコン」を青色で表示し「選択解除ボタン」に青色の枠を付けます。
    これにより、選択範囲がかかっている事がわかりやすくなります。

image

  • また「消去」「塗り潰し」「変形」「選択解除」アイコンを上部に追加しました。
    これにより、使用頻度の高い操作をすばやく行う事ができるようになります。
    スマホのような画面の小さな端末には表示されない補助的的なUIです。

image

変更があったファイル

  • app/axnos/ ディレクトリを上書きアップデート
  • app/chickenpaint/ ディレクトリを上書きアップデート
  • index.php

2025/11/28 v1.156.0

「litaChit」は「litaChix」になりました。

  • まだ「ChickenPaint Be」から改名してからわずか一週間ですが、「Chit」の語感があまりよくないため「Chix」(ひよこの複数形をくずしたもの)」に再度改名しました。
    「Chicken」から「Chick(ひよこ)」「Chicks(ひよこの複数形)」それをくずした「Chix」です。

PaintBBS NEOで縮小表示ができるようになりました。

  • これまでは「-」(マイナス)ボタンを押下しても1倍未満になる事はありませんでしたが、今回の更新で「0.5倍」「0.2倍」にズームアウトできるようになりました。
    極めて大きなキャンバスでも描画可能になり、スマホのような小さな画面でもキャンバスの全体を表示できるようになりました。

PaintBBS NEOの動画再生の操作部分を上に表示

  • 極めて大きな動画の時や小さな画面のスマホで動画を再生する時に、操作部分を下ではなく上に表示します。
  • ブラウザの表示領域の高さが不足している時にのみ、操作部分を上に表示します。
  • これにより、大きなサイズの動画の再生時に、「-」マイナスボタンで縮小表示したり、巻き戻したりできるようになります。

image

「お絵かきコメント」の画面を改善

  • お絵かきコメント記入画面を改善し、画像の一覧表示の画像サイズを縮小表示します。
  • その上で画像のクリックでポップアップ表示します。

変更があったファイル

  • app/chickenpaint/ ディレクトリを上書きアップデート
  • app/neo/ ディレクトリを上書きアップデート
  • functions.php
  • index.php

変更があったテンプレート

  • template/basic/index.css
  • template/basic/paint_com.html
  • template/basic/paint_neo.html
  • template/basic/parts/copyright.html
  • template/basic/parts/select_apps.html
  • template/basic/pch_view.html

2025/11/20 v1.153.1

「ChickenPaint Be」は「litaChit」になりました

  • さとぴあによるChickenPaintの改造版「ChickenPaint Be」の名称は「litaChit」になりました。
  • 設定項目には、「chickenpaint」という名前の変数が残っており、ファイル名も「chickenpaint.js」のままで、オリジナルのChickenPaintと高い互換性があります。
  • 変ったのはブランド名だけです。
  • 「litaChit」は「lita(スェーデン語で小さな)」「Chit(伝票、メモ、紙切れ)」を組み合わせた造語です。

image

今回の更新で、ファイルメニューから画像をダウンロードする時にPNG画像、固有形式CHI、色見本のACOが連続してダウンロードされる仕様から、画像だけ保存、まとめてZIPで保存に変わりました。

変更があったファイル

  • app/chickenpaint/ ディレクトリを上書きアップデート
  • functions.php
  • index.php
  • template/basic/parts/copyright.html
  • template/basic/parts/select_apps.html

2025/11/17 v1.151.0

  • Klecks、ChickenPaint、AXNOS Paintを更新しました。

変更があったファイル

  • app/axnos/ ディレクトリを上書きアップデート
  • app/chickenpaint/ ディレクトリを上書きアップデート
  • app/klecks/ ディレクトリを上書きアップデート
  • index.php

変更があったテンプレートのJavaScript

  • template/basic/js/common.js

2025/11/13 v1.150.0

  • KlecksとChickenPaintを更新しました。

変更があったファイル

  • app/klecks/ ディレクトリを上書きアップデート
  • app/chickenpaint/ ディレクトリを上書きアップデート
  • index.php

2025/11/08 v1.139.1

ChickenPaint Be更新

  • 選択範囲の縦横比を固定するチェックボックスが機能しなくなっていたのを修正しました。

コード整理

  • 関数が長くなりすぎていたため、 個別スレッドの下段に表示する前後のスレッドの画像一覧を作成する処理を別の関数に分離しました。

変更があったファイル

  • app/chickenpaint/ ディレクトリを上書きアップデート
  • index.php

2025/11/03 v1.138.0

Klecks更新

  • Klecksを最新版にアップデートしました。
    選択範囲ツールで直接変形操作ができるようになりました。

変更があったファイル

  • app/klecks/ ディレクトリを上書きアップデート
  • index.php
  • sns_share.inc.php

2025/10/31 v1.136.0

Twitterドメイン廃止に伴う更新

  • 報道によりTwitterドメインを廃止する方向である事が判明したため、内部で仕様していた「twitter.com」を「x.com」に完全に置き換えました。
  • 以前のバージョンでは内部で「twitter.com」を使用して、「x.com」にリダイレクトしていました。
  • 今後も「SNSで共有」機能で「X」に共有するための更新です。

変更があったファイル

  • index.php
  • sns_share.inc.php

2025/10/31 v1.135.3

テンプレートの大規模アップデート

アップロードする前に画像をプレビュー

  • ファイル選択時にファイルサイズチェックと、画像として読み込める形式かどうかをチェックします。
  • 問題がある時はエラーメッセージを表示します。
  • 問題がなければ、コメント欄にプレビュー画像を表示します。
  • 閲覧注意に設定する機能が有効な場合は、閲覧注意に設定されている時は赤枠が付きます。
    これにより、閲覧注意に設定されているのか、閲覧注意に設定されていないのかわかるようになりました。

2025_10_31_001_PetitNoteファイルプレビュー

お絵かきコメントでも画像をプレビュー

  • 複数の未投稿画像が存在する時はファイル名を選択して投稿する画像を指定します。
    選択された画像を、コメント欄にプレビュー画像として表示します。
    これにより、どの画像を選択したのかわかるようになりました。
    これまでは、思っていた画像と違う画像が投稿される事がありました。

2025_10_31_002_PetitNoteファイルプレビューお絵かきコメント

変更があったファイル

  • functions.php
  • index.php

変更があったテンプレート

  • template/basic/index.css
  • template/basic/js/common.js
  • template/basic/main.html
  • template/basic/paint_com.html
  • template/basic/res.html

テンプレートをカスタマイズしている方はファイル比較機能があるエディタで差分を確認するか、現在使用中のテンプレートをそのままご利用ください。
今回の更新で追加された機能は上記の通り、コメント欄への画像ファイルのプレビュー表示です。
これらの機能が必要ない場合は、テンプレートを更新する必要はありません。

2025/10/22 v1.129.8

ChickenPaint Be更新

  • 「P」ボタンの表示色が、全パレット表示/非表示の動作と同期していなかったのを修正しました。

変更があったファイル

  • app/chickenpaint/ ディレクトリを上書きアップデート
  • index.php

2025/10/22 v1.129.6

ChickenPaint Be更新

  • ボタンを押下しても変形確定ダイアログがクローズしない事があったのを修正しました。
  • キャンバスの回転モード時には、手のひらツールと同じ「grab」カーソルを表示するようになりました。

変更があったファイル

  • app/chickenpaint/ ディレクトリを上書きアップデート
  • index.php

2025/10/19 v1.129.3

ChickenPaint Be更新

モバイルモードとPCモードをボタン1つで切り替え可能に

  • これはでは画面が小さな端末のためのモバイルモードは、画面が小さくかつマルチタッチの時にのみ有効でした。
    しかし、PCで作業する時にも画面を広く使いたい時があります。
    そのため、PCで作業する時にも「モバイルモード」ボタンを押下すればモバイルモードに切り替わるようにしました。
    また、タブレット端末などでモバイルモードで起動すると、これまではモバイルモードでしか使う事ができませんでしたが、PCモードに切り替える事ができるようになりました。
    「モバイルモード」ボタンと「PCモード」ボタンは押下するたびに入れ替わります。

2025_10_13_001_ChickenPaint_Be_モバイルモードPCモード切り替え

変更があったファイル

  • app/chickenpaint/ ディレクトリを上書きアップデート
  • index.php

2025/10/14 v1.128.3

「SNSで共有する」に閲覧注意画像を共有するチェックボックスを追加

  • SNSによってはOGP画像にもラベルを付けれるため、NSFWも共有するかどうかを設定するチェックボックスを追加しました。

image

  • ただし、閲覧時に年齢確認する設定の時には、このチェックボックスは表示されません。また、OGP画像は表示されません。

変更があったファイル

  • app/chickenpaint/ ディレクトリを上書きアップデート
  • index.php
  • sns_share.inc.php

変更があったテンプレート

  • template/basic/parts/before_edit_del_res_loop.html
  • template/basic/parts/threads_loop.html
  • template/basic/res.html
  • template/basic/set_share_server.html

2025/10/13 v1.127.1

ChickenPaint Beのバグを修正

「ChickenPaintはレイヤーパレットが縮められない」という指摘を受けて調査した結果、以下の問題が存在していた事がわかりました。

  • 座標がずれている。
  • スマホ・タブレット・Windows Inkのペンを使用時に、Touchムーブイベントが割り込んで競合が発生してイベントがキャンセルされている。

この二点を改善し、レイヤーパレットを縮めたり伸ばしたりする操作が問題なく行えるようにしました。

2025_10_13_001_ChickenPaint_Be_レイヤーパレットの伸縮

変更があったファイル

  • app/chickenpaint/ ディレクトリを上書きアップデート
  • index.php

2025/10/11 v1.126.3

PaintBBS NEO更新

  • 特定サイトのドメイン名を含むドメイン名の時に誤動作する問題を修正しました。

変更があったファイル

  • app/neo/ ディレクトリを上書きアップデート
  • index.php

2025/10/07 v1.126.2

ChickenPaint Be更新

色収差フィルタの動作を改善

image

  • 「結合レイヤー」が自動的に追加される事をわかりやすくするため、チェックボックスのラベル名を「全体に適用 (結合レイヤーを追加)」にしました。
  • 前回更新した時のラベル名は「現在のレイヤーのみ」でしたが、今回の更新によりチェックボックスの意味は逆になりました。

変更があったファイル

  • app/chickenpaint/ ディレクトリを上書きアップデート
  • index.php