Skip to content

Repository files navigation

PaintBBS NEO

ver1.5.1

お絵かきしぃ掲示板 PaintBBS (©2000-2004 しぃちゃん) を html5 化するプロジェクトです。

作者行方不明のため、許諾は取れていません。

しぃちゃんのホームページ(Vector)

Flash や html5 のお絵かきサイトはいっぱいあるんだけど、そうじゃないんだ。
おじさんは昔の java アプレットそっくりの環境が欲しいんだ。

  1. 掲示板に投稿できる Mac/Win 用のアプリを開発します(中身は javascript)

  2. PaintBBS と見た目や操作性がだいたい同じになってきたら、
    管理人さんに連絡取って直接組み込んでもらうことを目指します

:

……というわけで、ふたばで NEO が使えるようになりました!

105 名前:◆管理人 投稿日:2017/01/19(木) 02:20 del
落書き板に組み込みました
http://nov.2chan.net/q/futaba.htm
調子が良ければ他のお絵かき板にも導入します

v1.5 で動画記録をサポートしました。 Java 版の動画データ(.pch)が解析不能なため、動画データの互換性はありません。

Chrome/Safari/Edge iOS(Mobile Safari)
※ 最新のバージョンのみ

IE では動作しません。 Android でもだいたい動くのですが、サポート対象外とします 。 Firefoxでは描画がスムーズに行えない場合があります。

PaintBBS NEO の開発に参加している、さとぴあさこつは、お絵かき掲示板のPHPスクリプトを開発しています。
ぜひご利用ください。

noReita

サイト内にサポート掲示板があります。

POTI-board EVO

Petit Note

POTI改 設置サポート掲示板で、POTI-board EVOと、Petit Noteのサポートを行っています。

お絵かき掲示板PHPスクリプトのサポートについて

  • それぞれのスクリプトのライセンスに記載されている通り、明示的であるか黙示的であるかを問わず、いかなる種類の保証もありません。
    対応可能な内容の場合にのみ対応させていただいています。

Javaアプレットを前提とした古い掲示板でNEOを使うための移行ガイド

(古い PHP のコードには色々問題がありますので、お勧めできません)

起動オプション

  • PaintBBS オリジナルの起動オプションについてはオリジナルの README
  • NEO 独自のオプションについては、NEO の独自拡張についてを参照してください。
  • paramタグは2022年にHTML Living Standardから削除されました。
    新しい起動オプションへの移行をご検討ください。

具体的な設定例

iPadで意図せず画面が拡大する場合

  • NEOが起動するHTMLファイルの内に以下のJavascriptを記述する事で、意図しないiPadの画面拡大を防止できる場合があります。
<script>
document.addEventListener('DOMContentLoaded',()=>{
	document.addEventListener('dblclick', (e)=>{ e.preventDefault()}, { passive: false });
});
</script>

Chrome(80 以降?)で横に長い線を引いた時にジェスチャーと認識されて、ブラウザバックが発生する場合

  • chrome://flags/#overscroll-history-navigation でジェスチャーを無効にするのもひとつの方法です。
  • PCの場合は以下のCSSで解決する事があります。
<style>body{overscroll-behavior-x: none !important; }</style>

ただし、SafariやAndroidのChromeではこのCSSを使った場合でもブラウザバックが発生するようです。

外部ライブラリのカラーピッカーと連携するためのインターフェース

  • これまでは、外部ライブラリのカラーピッカーと連携させるには、PaintBBS NEOそのものを改造する必要がありました。
    そのため、外部ライブラリのカラーピッカーにNEO側で変更した色を渡すためのインターフェースを作成しました。
document.addEventListener("neo:colorchange", (e) => {
    colorWheel.hex = e.detail.hex;
});

このように記述する事で、ライブラリのカラーピッカーにNEOで変更した色を渡す事ができるようになりました。
カラーピッカーからNEOへの色のセットは

Neo.setColor(color.hex);

このような形式で16進数を渡します。
luncheon/reinvented-color-wheel: A vanilla-js touch-friendly HSV color picker inspired by Farbtastic Color Picker.
を使用した例を、sampleに実装しています。
また、その他のライブラリでも使用できます。
使用するライブラリによってはループが発生する場合がありますので、ご注意ください。
たとえば、simonwep/pickr: 🎨 Pickr - A simple, multi-themed, responsive and hackable Color-Picker library. No dependencies, no jQuery. Compatible with all CSS Frameworks e.g. Bootstrap, Materialize. Supports alpha channel, rgba, hsla, hsva and more!を使用する場合にも、フラグを管理するコードを追加する必要があります。
sampleではisUpdatingFromNeoという変数をNEOから受け取った値かどうかを判定するフラグとして使用しています。

ウィンドウビュー(全画面)モードへの切り替えを検出するカスタムイベント

ウィンドウビュー(全画面)モードに切り替わった事を通知するカスタムイベントを追加しました。

document.addEventListener("neo:fullscreenchange", (e) => {
	console.log("fullscreen",e.detail.fullscreen);//true|false
});

ウィンドウビュー(全画面)の時は、e.detail.fullscreentrueになり、ページビューの時にはfalseになります。

手ぶれ補正機能

<script>     
 document.addEventListener("DOMContentLoaded", (e) => {
      Neo.setStabilizeLevel(1);//0-5の範囲で手ぶれ補正の初期値を設定する
    });
</script>

<select onchange="Neo.setStabilizeLevel(this.value)">
  <option value="0">0</option>
  <option value="1" selected>1</option>
  <option value="2">2</option>
  <option value="3">3</option>
  <option value="4">4</option>
  <option value="5">5</option>
</select>

Neo.setStabilizeLevel(5)引数0-5の範囲で、手ぶれ補正の強度を設定します。
0で手ぶれ補正なし、5で最大。
無指定の時には、手ぶれ補正機能が無効になります。

PaintBBS NEOのサポート

掲示板の設置以外についての質問・要望はこちらでお願いします。

以前ここで公開していた旧掲示板はこちら

Mac/Win 用アプリは、NEO 開発の過程で使われたものです。
NEO の入っていない掲示板に投稿して、動作を確認することができたのですが……

残念ながら、electron のバージョンアップで動かなくなってしまいました。 そのうち直して再アップロードしたいと思います。

ver1.7.16 (2026/07/23)

手ぶれ補正強度の見直し

  • 手ぶれ補正レベル1の時の補正強度を弱めました。
  • ブラシサイズが8px以上の時の補正強度がより弱くなるようにしました。
  • ズームで拡大している時の補正強度がより弱くなるようにしました。

JSDocの追加と修正

  • 今後の開発のために、any型にせざるを得ないと判断していた箇所の型を明確にしました。

ver1.7.15 (2026/07/05)

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

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

ver1.7.12 (2026/07/04)

手ぶれ補正levelの初期値の見直し

  • NEO本体の手ぶれ補正の初期値を1から0に変更しました。
    これにより、外部でNeo.setStabilizeLevel(1)のように値をセットした時にのみ手ぶれ補正機能が有効になるようになりました。
    そのため、手ぶれ補正を無効化するフラグも必要なくなりました。

ver1.7.11 (2026/07/02)

class構文に全面的に移行

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

ver1.7.10 (2026/06/28)

  • ウィンドウビュー(全画面)モードに切り替わった事を通知するカスタムイベントを追加しました。
    詳細はこのページ内の上部をご確認ください。
    また、sampleにもイベントリスナーのコードを追加しました。
    ウィンドウビューモードの時にはtrueを、ページビューの時にはfalseをconsoleに出力します。

ver1.7.9 (2026/06/27)

ver1.7.8 (2026/06/25)

  • <PARAM NAME="neo_color_picker_id" value="neo-colorPicker">
    (id名、"neo-colorPicker"はあくまでも一例で、各自で自由に設定できます。)
    外部の<input type="color">を使用して描画色を設定できるようになりました。
    その時のIDを実際の実装に合わせて指定します。
    NEO本体で変更した色が <input type="color" id="neo-colorPicker"> に入ります。
    id名は自由に設定可能です。
    このオプションはそのidを指定するためのものです。
    実装例。
<input id="neo-colorPicker" type="color" oninput="Neo.setColor(this.value)">  

sampleと、sample2に実装しましたので、動作するsampleで確認したほうが早いかもしれません。

ver1.7.7 (2026/06/18)

  • <PARAM NAME="neo_visibility_change_title_rewrite" VALUE="true">
    このフラグをtrueにすると、タブが非アクティブになった時にタイトルタグにアスタリスク「*」を追加しします。
    これにより、Chromeのメモリーセーバーによるタブの破棄を回避します。
    Windows版Chrome149でテストし有効性を確認しました。
    しかしながら、もっとも確実な回避方法は、Chromeの設定の 「常にアクティブにするサイト」 にサイトを追加する事です。
    デフォルトはfalse です。

ver1.7.6 (2026/06/12)

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

ver1.7.5 (2026/06/04)

バグ修正

  • 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でも設定できるようにしました。

具体的な設定例

ver1.7.2 (2026/05/31)

これまでは新しく開発した掲示板であっても、Javaアプレット形式の設定が必須でした。
しかしながらparamタグは2022年にHTML Living Standardから削除されており、突然使用できなくなる可能性があります。
そのため、データーセットと、オブジェクトを使用した起動ができるようにしました。
しかし、互換性は維持する必要があります。
従来のapplet-dummy、paramタグでも問題なく動作するようにしました。
sampleは、applet-dummyとparamで動作し、sample2は新しいデーターセットとオブジェクトの設定を読み込んで動作します。

具体的な設定例

新しい設定方法のほうがより少ない文字数で設定できます。

ver1.6.61 (2026/05/15)

  • Object.create(Parent)をclass構文のextendsを使用した継承に書き直しました。
    new(Parent)が残っていた箇所もclass構文のextendsを使用した継承になりました。

ver1.6.60 (2026/05/10)

  • new(Parent)で継承するのではなくObject.create(Parent)で継承するようにしました。
  • 1000件以上あったTS型チェックの警告を10件に削減しました。
    そのうち8件の該当コードはライブラリなので、実質2件です。 JSにTSの型チェックを厳格に行うと膨大な数の警告になるため、暗黙的にanyなどの警告はチェック対象から除外しました。
  • v1.6.43 (2026/04/23)で、ツールメニューに追加したtouch-action: none;が効果的に動作している事が判明しました。 それ以前のバージョンでは、Touchイベントが割り込んでスムーズにスライダーが動いていませんでした。

ver1.6.59 (2026/05/08)

  • Neo.setStabilizeLevel()でもNeo.setStabilizLevel()でも手ぶれ補正の強度を指定できるようになりました。
    StabilizLevelがスペルミスでeが足りないため外部から呼び出す関数名も変更になりましたが、既存のシステムでも動作するようにする必要があるため、どちらでも呼び出し可能になるようにしました。
  • TS型チェックの静的解析ツールを使ってコードの整理をすすめています。
    Javascriptのチェックで使うには厳格すぎるので、設定ファイルを追加してチェックを若干緩くしてチェックしています。

ver1.6.58 (2026/05/06)

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

ver1.6.57 (2026/05/05)

  • 「お絵描きしぃ掲示板 PaintBBS」→「お絵かきしぃ掲示板 PaintBBS」(正式名称)に修正。
  • コード整理。

ver1.6.56 (2026/05/04)

  • 手ぶれ補正が必要なのは主にキャンバスサイズが等倍または縮小されている時であるため、手ぶれ補正の強度を拡大時に弱めるようにしました。
    手ぶれ補正は線画には有効でも塗りには適さない場合があるため線の幅が8より大きな時にも弱めるようにしました。
    拡大時でかつ8より線の幅が大きな時は両方のルールが適用されより手ぶれ補正の強度が弱くなります。

ver1.6.53 (2026/05/01)

  • ショートカットキーでブラシサイズを変更するとスライダーが操作ができなくなるv1.6.52のバグを修正しました。

ver1.6.52 (2026/04/30)

  • コード整理。v1.6.51で修正したver1.6.46で線幅が保存できなくなる問題の原因を解明して、コード内のコメントに記載しました。

ver1.6.51 (2026/04/29)

バグ修正

  • ver1.6.29でidに接頭辞neo-を追加した時に、 this.params.type == "neo-pen" に変更していなかったため、鉛筆が選択されていない状態で起動していたのを修正しました。
  • 鉛筆・水彩などのツールの切り替えのたびに線幅が1にリセットされるバグを修正しました。
    このバグはver1.6.46のtouchstart、touchendのpointerdown、pointerupへの置き換えにより発生し、v1.6.51で修正されました。
  • 以前から存在していたテキストツールで文字入力画面を開いて確定していない状態でツールを切り替えた時に、テキストツールの入力欄が消えずに残る問題を修正しました。

バグストライプをなくすオプション

  • オリジナルのPaintBBSに存在しいて、NEOでも再現する「傾け」のバグを使ったストライプ模様の作成を利用したい場合もあれば、傾けたいだけなのにストライプ模様が出現して、それを消す作業が必要になる場合もあります。
    そのため、バグストライプが発生しないようにするオプションを追加します。

  • <PARAM NAME="neo_disable_turn_original_glitch" VALUE="true">
    このフラグをtrueにすると、バグストライプが発生しなくなります。
    ぴくらぼ
    バグストライプ使用例。
    オリジナルのPaintBBSではバグストライプが発生するため
    デフォルトはfalse です。

ver1.6.48 (2026/04/27)

  • iPadやiPhoneで、意図せずダブルタップズームが動作して画面が拡大する問題に対応するため、ダブルタップのデフォルトの動作をキャンセルする処理を追加しました。

ver1.6.47 (2026/04/25)

  • <PARAM NAME="neo_disable_grid_touch_move" VALUE="true">でアプレットのグリッド部分のタッチスクロールを無効化した時に発生していた問題を修正しました。 アプレットの左右の余白部分でタッチスクロールできなくなっていたのを修正しました。
  • pointerdownに切り換えていたにも関わらずtouchstartを判定する処理が残っていたを修正しました。

ver1.6.46 (2026/04/24)

  • 描画とスライダー操作のEventListenerを、pointerEventsに統一しました。
  • 手ぶれ補正onの時の補正強度を弱めました。
    レベル1の時の補正レベルを0.55に引き下げました。(数字が小さいほど補正があまりかからない)

ver1.6.43 (2026/04/23)

  • キーボードイベント関連の軽微なエラーを修正しました。

ver1.6.42 (2026/04/22)

  • 手ぶれ補正onの時の補正強度を弱めました。
    v1.6.41でレベル1相当だった補正レベルはv1.6.42ではレベル2になりました。
    ほぼ1レベル分ずつシフトしています。
    レベル1は、以前は0.8でしたが、今は0.6です。(数字が小さいほど補正があまりかからない)

ver1.6.41 (2026/04/20)

  • スペースキー押下で手のひらツールに切り替わらない事があるバグを修正しました。
  • キーダウンのたびにEventListenerが追加されていたバグを修正しました。

ver1.6.39 (2026/04/19)

  • 手ぶれ補正のレベルを指定できるようになりました。 Neo.setStabilizeLevel()の引数に0から5までの数字をセットしてレベルを指定します。 0で補正なし、5で最強。 sample/のテストページにも、手ぶれ補正のレベルを設定する項目を追加しました。 補正レベルの切り替えを簡単にテストする事ができます。

ver1.6.38 (2026/04/18)

  • コードを整理しました。

ver1.6.37 (2026/04/18)

  • ver1.6.36のバグを修正しました。 手ぶれ補正機能を追加したあとの動作確認で、ペンやマウスは問題なかったのですが、スマホ+指では描画できなくなっていました。 ポインターアップ時にも座標の更新を行うようにして、スマホ+指でも補正のかかった状態で描画できるようにしました。

ver1.6.36 (2026/04/17)

  • 手ぶれ補正機能を追加しました。
    キャンバスを60%や40%、20%などに縮小表示しながら描画した時に高い効果を発揮します。
    しかしながら、手ぶれ補正を使いたくない場合もありえます。
    そのため、以下のパラメータを追加しました。
  • <PARAM NAME="neo_disable_stabilizer" VALUE="true">
    このフラグをtrueにすると、v1.6.36で追加した手ぶれ補正機能を無効化します。
    v1.7.12で、手ぶれ補正の値がセットされていない時には、手ぶれ補正が無効になったため、このフラグは廃止になりました。

ver1.6.35 (2026/04/16)

  • <PARAM NAME="neo_disable_neo_center_min_width" VALUE="true">
    id neo-centerの最小幅を300pxのキャンバスの時と同じ幅にするインラインCSSminWidth="397px"を追加しました。
    オリジナルでもNEOでも、50pxなどの小さなキャンバスを開いた時に、ボタンが画面の外にでる重なり合うなどのレイアウト崩れが発生するからです。
    しかしながら、もとに戻したい場合もありえます。
    このフラグをtrueにする事でminWidth="397px"を無効化しv1.6.34以前の表示に戻します。
    デフォルトは false です
    APPLETの幅が400px未満の場合は、自動的にminWidth="397px"を無効化します。

ver1.6.34 (2026/04/15)

  • コードを整理しました。

ver1.6.33 (2026/04/14)

  • コピー操作中に「ctrl+z」や「元に戻す」ボタンでアンドゥした時の動作を変更しました。
    「Esc(エスケープ)」や「右クリック」などによる操作のキャンセルと同じ動作になりました。
    これまではアンドゥで枠線が消えても、ペーストモードが解除されずに残っていました。
    そのため、ドラッグで画像が移動しペーストされていました。

ver1.6.32 (2026/04/12)

  • 右クリックによるコピーのリセット機能を追加しました。

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

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

そして、オリジナルのPaintBBSのv2.04やv2.19はoekaki.htmlの記述通りに動作します。
そのため、右クリックでコピーをリセットできるようにしました。

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

ver1.6.31 (2026/04/11)

  • 右クリックによるベジェのリセット機能を追加しました。 オリジナルのPaintBBSのv1.46 v2.04 v2.19では右クリックによるベジェのリセットが可能でした。
    しぃペインターも同様です。
    そのため、右クリックでベジェをリセットできるようにしました。

ver1.6.30 (2026/04/08)

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

ver1.6.29 (2026/04/07)

  • Viewerを含むすべてのidに接頭辞"neo-"を追加しました。

ver1.6.28 (2026/04/06)

  • 掲示板やCMSのidと重複が発生する可能性があるためより多くのidに接頭辞"neo-"を追加しました。
    動画再生画面のViewerからはじまるidには接頭辞を追加できませんでした。
    その他のidには接頭辞"neo-"が追加されています。

ver1.6.27 (2026/04/05)

  • 掲示板やCMSの、id #containerとNEOのid #containerの重複が原因で、起動に失敗するケースがあるため、すでに使用されている可能性の高いidに接頭辞"neo-"を追加しました。

ver1.6.26 (2026/03/23)

  • requestAnimationFrame()を使用した影響で、四角ツールのXOR反転表示がドラッグ終了後も残るバグを修正しました。
  • <PARAM NAME="neo_enable_zoom_out" VALUE="true"> でキャンバスの縮小表示を許可した時の縮小表示倍が80%、60%、40%、20%になりました。

ver1.6.25 (2026/03/15)

  • レイヤー結合やコピーの操作を行った時の全体更新の頻度をrequestAnimationFrame()で最適化して、負荷を削減しました。

ver1.6.24 (2026/03/13)

  • 0.5倍の縮小表示の表示品質が必要以上に高く設定されていました。
    そのため、2000x2000Pixelのような大きなキャンバスを開いた時にスクロールバーの操作ができなくなっていました。
    ctx.imageSmoothingQuality = "high";
    を0.5倍未満の時にのみ使用するようにして、0.5倍表示時の負荷を削減し、スクロールバーが操作できるようにしました。
  • スクロールするたびにキャンバスの全体更新が実行され処理が重くなるため、requestAnimationFrame()を使用して全体更新の頻度を下げました。

ver1.6.23 (2026/01/20)

  • ブラシサイズが10px以下の時にのみ、描線がカクカクする問題を解消していましたが、16px以下に適用範囲を拡大しました。
  • ペンが浮いた状態の時のカーソルの移動で高精度なイベントを処理しても負荷が高くなるだけで意味がないため、描画時のにみ高精度なイベントを処理するようになりました。

ver1.6.22 (2026/01/17)

  • ペンを素早く動かした時に、描線の円弧が正しく描写されずカクカクした線になる問題を修正しました。
    ただし、ブラシサイズが10px以下の時のみの対応になります。
    描線のカクツキを解消するために従来よりも多くのイベントを処理しており、ブラシサイズが大きな時は負荷が問題になるからです。

ver1.6.21 (2025/11/28)

  • <PARAM NAME="neo_viewer_buttonswrapper_top" VALUE="true">
    このフラグを true にすると動作再生時の操作ボタンや進捗バー等を動画の上に配置できるようになります。
    ブラウザの表示領域の高さが動画の高さに対して不足している時にのみ上に配置します。
    極めて大きなサイズの動画の再生時や、小さな画面のスマホ等のデバイスで動画を縮小表示して再生するためのUIです。
    オリジナルのPaintBBSには無い機能なのでデフォルトは false です

ver1.6.20 (2025/11/27)

  • <PARAM NAME="neo_enable_zoom_out" VALUE="true">
    このフラグを true にするとズームで、0.5倍、0.2倍に縮小表示できるようになります。
    オリジナルのPaintBBSには無い機能なのでデフォルトは false です

ver1.6.19 (2025/10/11)

  • 2chan.netではない別サイト(例 example2chan.netなど)の時にふたば専用モードになる問題を修正しました。

ver1.6.18 (2025/06/08)

  • <PARAM NAME="neo_max_pch" VALUE="(post_max_size 単位MB)">
    で、サーバのpost_max_sizeを渡し超過する時はアニメーションデータを切り捨てて画像の投稿を成功させます。
    そして、このパラメータの値が0だった時は、オリジナルのパラメータanimation_maxと同じように、無制限にします。
    サーバから値を取得できなかった時に0が渡される可能性があり、0で無制限としなければ投稿が失敗するからです。

ver1.6.17 (2025/4/12)

  • これまでマウスに最適化されていた、動画再生の進捗バーの位置を指定して一時停止・巻き戻しを行う操作がスマホ・タブレットでもできるようになりました。
  • 動画再生画面で拡大表示した時の画像のスクロールがスマホ・タブレットでもできるようになりました。

ver1.6.16 (2025/4/10)

Chrome135のデフォルトフォントが"Noto Sans JP"に変わり文字がかすれて読めなくなってしまったため、 neo.cssから

font-weight: 100;

を削除しました。

image

Chrome135で文字のかすれが発生。

image

修正後。

ver1.6.15 (2025/3/24)

  • <PARAM NAME="neo_validate_exact_ok_text_in_response" VALUE="true">
    このフラグを true にするとサーバから返って来た文字列が"ok"では無かった時にエラーメッセージをアラートで表示して描画中の画面から移動しません。
    PHP等で、die("ok")のように指定する必要があるため、対応していないPHPで、このフラグをtrueにすると投稿できなくなってしまいます。
    そのためデフォルトは false です

  • エラーメッセージをより詳細に表示

  • 各ステータスコードとその内容を「投稿に失敗。時間を置いて再度投稿してください。」と組み合わせて表示します。

    Screen-2025-03-22_15-37-49

    日本語。
    Screen-2025-03-22_15-36-25

    英語。
    Screen-2025-03-22_15-35-24

    スペイン語。

  • ふたばを判定している正規表現を修正しました。

ver1.6.12 (2025/1/15)

  • <PARAM NAME="neo_disable_grid_touch_move" VALUE="true">
    このフラグを true にすると、キャンバス周辺の格子模様の箇所をタッチしてもスクロールしなくなります。
    これによりWindows Inkが有効な時やAndroidやiPad等のモバイルデバイス使用時に発生していた意図しない画面スクロールを防止します。
    ただし、端末の画面の幅がアプレットの幅+100px以下の時には、従来と同じように、キャンバス周辺の格子模様の箇所でスクロール操作が可能で画面が上下左右に動きます。
    画面が狭い端末の時には格子模様の箇所でスクロールしなければならなくなるからです。
    また、ピンチズーム使用時にも格子模様の箇所でスクロール操作が可能になります。
    コピー、レイヤー結合、消し四角などの操作で画面全体が上下に動く。しかし、ピンチズーム時や幅の狭い端末では網目の上でスクロールできなくなると操作不能になる。 · Issue #95
    デフォルトは false です
  • スポイトのショートカットキー「Alt」を押下した時のFirefoxのメニューの開閉を防止する処理を追加しました。
  • キャンバス画面への動画データ読み込み時に、アニメーションをスキップした時には静止画取得以前のアンドゥの履歴を動画から取得しないようにしました。

ver1.6.11 (2024/12/22)

  • <PARAM NAME="neo_animation_skip" VALUE="true">
    このフラグを true にすると、キャンバス画面への動画データ読み込み時に、アニメーション再生をスキップします。
    キャンバス画面で動画を再生する事なく、レイヤー情報を取得します。
    オリジナルのPaintBBSにより近い動作になります。
    これまでは、キャンバスをタップするまでアニメーションが再生されていました。
    このパラメータが未設定の時は、従来と同じように画面をタップするまでアニメーションを再生します。
    デフォルトは false です

ver1.6.10 (2024/12/12)

  • オリジナルのPaintBBSに存在していたパラメータ <PARAM NAME="animation_max" VALUE="(file size 単位kb)"> を実装しました。

animation_max length of data for animaion(KByte. default value is 0)
アニメーションデーターの最大値をKByte単位で指定します。
大体の目安でこの値に制限する為、多少前後します。
0で制限無し。

(Readme_Shichan.html)

  • NEOの独自パラメータ <PARAM NAME="neo_max_pch" VALUE="(post_max_size 単位MB)">
    よりもanimation_maxが優先されます。 また、neo_max_pchは、formDataによる送信時にのみ動画ファイルの投稿を制限しますがanimation_maxは、送信方式に関係なく制限します。

ver1.6.9 (2024/12/10)

  • <PARAM NAME="neo_confirm_layer_info_notsaved" VALUE="true">
    このフラグを true にすると、「動画」が記録されていない時に「レイヤー情報は保存されません。続行してよろしいですか?」という確認ダイヤログが開くようになります。
    デフォルトは false です

ver1.6.8 (2024/11/15)

  • 動的パレットスクリプトの影響で「窓」ボタンが押せなくなるケースがあるため、「窓」ボタンのz-indexを調整して対応しました。
  • Chromeでは描画時に通常のカーソルが消えてしまうため、8px以下の時にも円カーソルを表示します。

ver1.6.7 (2024/11/15)

  • 100px以下の小さなキャンバスサイズのときに操作できなくなっていたのを修正し、オリジナルのPaintBBSの表示に近づけました。

ver1.6.6 (2024/09/30)

  • ページ移動してしまった時の画像の復元処理を改善しました。
  • もとの画像よりも小さなキャンバスサイズで開いてしまっても再度もとのキャンバスサイズで開きなおせば画像が復元できるようになりました。
  • これまでは、小さなキャンバスサイズで開いてしまうと、そのサイズで画像が切り取られていました。

ver1.6.5 (2024/09/28)

  • 復元データのバックアップがページ移動時に加え、10ストローク単位でも保存されるようになりました。
  • PC使用時のデータの保存先をセッションストレージからモバイル端末使用時と同じようにローカルストレージに変更。
  • ブラウザを完全に閉じてしまったり、停電等により予期しない電源断が発生した時にも描画していた画像を復元できるようになりました。

ver1.6.3 (2024/03/14)

ver1.6.2 (2024/02/15)

ver1.6.1 (2023/12/25)

ver1.6.0 (2023/6/05)

  • WAF 誤検知等の問題に対処するため、画像やアニメーションデータを formData で送信する機能がつきました。作っていただいた @satopian さんに感謝。

    <param name="neo_send_with_formdata" value="true">

    で有効になります。詳細はサンプル参照。

  • 時代遅れになった javascipt を使っている部分を修正。これも@satopian さん提供です。

ver1.5.16 (2022/12/22)

  • 送信失敗時のエラーメッセージの追加と修正です。

ver1.5.15 (2021/11/07)

  • <param name="neo_show_right_button" value="true">
    を指定すると、デスクトップでも「右」ボタンが常時表示されるようになりました。

ver1.5.14 (2021/10/03)

  • url_save を指定しないと投稿できなくなっていた問題を修正

ver1.5.12 (2021/06/05)

ver1.5.11 (2021/05/16)

  • 送信エラーが発生した時の動作を改善しました。
    失敗した時は URL 遷移しません。
    成功しても応答が「error\n」ではじまる文字列だった場合は 仕様通りエラーになります。
  • url_save, url_exit でオリジナルと同じように絶対バスが指定できるようになりました。
  • POST の MIME を application/octet-stream に変更しました。
    (ふたばでは互換性を重視して従来通り applicatio/octet-binary です)
    もし問題が発生する環境があれば個別に対応しますので、連絡ください。

ver1.5.10 (2020/09/21)

  • 投稿ボタン連打対策を入れました

ver1.5.9 (2020/06/22)

  • オリジナルの PaintBBS にあったセキュリティ関連のオプションを実装しました。

    <param name="neo_emulate_security_error" value="true">

    にすると、描画時間やクリック回数が少ない時に投稿を拒否して、任意の URL に飛ばすことができます。
    README-potiboard.md にも追記しました
    デフォルトは false です

ver1.5.8 (2020/06/14)

  • (v1.5.7 のソースコードを prettier で整形しただけです)

ver1.5.7 (2020/06/08)

  • Chrome で左から右にスワイプした時に前の画面に戻ってしまう問題の対処ですが……

    <param name="neo_confirm_unload" value="true">

    にすると、戻るボタンを押した時などに「このサイトを離れますか?」という警告が出るようになります。
    デフォルトは false です

ver1.5.6 (2020/05/10)

  • samplebbs の保守が困難になっていたので、リポジトリから削除しました
  • Apache で mod_pagespeed を使った時、正しく表示されない問題に対処しました

ver1.5.5 (2020/04/11)

  • line を使った動画の再生でなぜか無限ループに入ることがあったので対処

  • ツールの位置の左右入れ替えができるようになりました。

    Neo.setToolSide(true) // true|false

    true のときツールはキャンバスの左側になります

ver1.5.4 (2019/10/23)

  • iPadOS で右ボタンが表示されない問題を修正

ver1.5.3 (2019/8/19)

  • ベジェ曲線のプレビューの表示方法がオリジナルの PaintBBS と違っていたのを修正
  • Chrome67 以降でベジェ曲線のプレビューが重くなっていたのを高速化

ver1.5.2 (2019/8/2)

  • 動画の再生エラーをちょっとだけ修正

ver1.5.1 (2018/11/29)

  • 「続きを描く」は表示までに時間がかかるので、途中経過を表示するようにしました
     アニメーション中にキャンバスをクリックすると、再生を省略します
  • コピーを中断して四角ツール等を使うとコピーした矩形がずっと画面に残ってしまっていたのを修正

ver1.5.0 (2018/11/25)

  • ビューアの再生速度を変更できるようにしました
  • IE11 で投稿できなくなっていた問題を修正

ver1.4.11 (2018/11/13)

  • ビューアのボタン類の実装
  • 動画の再生に失敗しても続きから描けるようにしました

ver1.4.10 (2018/11/2)

  • ぼかしツールとベジェ曲線をさらに修正

ver1.4.9 (2018/10/30)

  • ベジェ曲線が点線になる問題を修正

ver1.4.8 (2018/10/26)

  • 消し四角とぼかしツールもバグってたので修正しました

ver1.4.6 (2018/10/23)

  • 全消しで動画が途切れるバグを修正
  • 消しゴムの透明度が動画で再現されないバグを修正

ver1.4.5 (2018/10/17)

  • 動画記録お試し版
     オリジナルの PaintBBS と同じように動画を記録することができますが、
     動画データ(拡張子 pch)の互換性はありません。

ver1.3.4 (2018/05/30)

  • 裏技ですが、JavaScript コンソールに

    Neo.painter.inputText.style.fontFamily="serif"

    とか入力してテキストツールのフォントを変更できるようになりました (某所で要望があったので……)

ver1.3.3 (2018/05/17)

  • スペイン語対応 (Spanish support)

ver1.3.1 (2018/04/16)

  • 画面外にドラッグした時にいろいろ不具合が出ていたのを修正

ver1.3.0 (2018/04/04)

  • 対応環境に iOS(Mobile Safari)を追加
  • 「右」ボタンの場所を右側に変更

ver1.2.9 (2018/03/30)

  • モバイルで画面左上に「右」ボタンが表示されるようになりました 「右」をタップ → ツールをタップで右クリックと同じ動作になります 変な UI ですがこれが昔風でいいのではないかと...

ver1.2.8 (2018/03/22)

  • safari でリロードした時に画像が保存されないバグを修正
  • iPad pro でペンを使った時にボタンが押せないバグを修正

ver1.2.6 (2018/02/22)

  • 既に NEO が組み込まれている掲示板をアプリ版の NEO で開いた時は二重起動の警告を表示するようにしました
  • モバイルでスライダを動かすと全体がスクロールしてしまうバグを修正
  • 日本語以外の環境ではメッセージを英語で表示するように修正

ver1.2.3 (2017/12/31)

  • Safari(iOS、MacOS)でキャンバスの右端や下端の描画がおかしくなるバグを修正。

ver1.2.2 (2017/12/24)

  • Android の Chrome で描けなくなっていたのを修正。

ver1.2.1 (2017/12/19)

  • 著作権表示のしぃちゃんの名前が「しいちゃん」になってたのを修正。
    どうも ver0.3 の頃からずっと間違ってたようです。すみません。

ver1.2.0 (2017/12/11)

  • ページを離れるときに警告のポップアップを出す機能は問題が多いので
    デフォルトではオフにしました削除しました

ver1.1.16 (2017/11/25)

  • 塗り潰しのバグ修正できたかも?
  • ブラシサイズを変更するとトーンの柄がずれるバグを修正
  • クレジット表記のボタンを押した時の挙動を新窓表示に変更
  • ページを離れるときに警告のポップアップを出すように修正(ちょっとうるさいですが)
  • RGB スライダを動かすとカレントパレットの色も変わるように修正
  • WonderCatStudio の動的パレットで getColors の値がおかしかった問題を修正

ver1.1.12 (2017/9/9)

  • 掲示板開発者用の paintBBSCallback がちゃんと実装されていなかったので実装

ver1.1.11 (2017/8/16)

  • スポイトツールのバグ修正

ver1.1.10 (2017/8/11)

  • /samplebbs/README.md修正。
  • スポイトツールの動作変更
  • ベジェツールを微妙に調整
  • Chrome でペンを認識しなくなることがあるので PointerEvents を使うように修正

ver1.1.9 (2017/7/27)

  • キャンバスの端でぼかしブラシを使うと白が混じるのを修正
  • ズーム時にブラシを画面外に出すと画面が点滅する不具合を修正
  • カーソルのゴミが画面端に残ってしまうことがあるのを修正

ver1.1.8 (2017/7/10)

  • Edge と IE ではまだバグが残っていることがわかったので、警告表示を復活しました
    ※Edge40 以上(userAgent 文字列では Edge/15 と表示されます)でバグが治ったのが確認されています

ver1.1.6 (2017/5/23)

  • Chrome58 以降でふたばの画像掲示板に投稿すると失敗する問題を修正できたような気がします

ver1.1.5 (2017/5/10)

  • Chrome58 以降でふたばの画像掲示板に投稿すると失敗するようになったので警告表示を追加しました

ver1.1.4 (2017/3/27)

  • サムネール投稿のバグ修正
  • アプレットの高さが足りないときレイアウトが崩れるのを修正しました

ver1.1.3 (2017/3/16)

  • ベジェツールの修正。オリジナルの PaintBBS に近い、ちょっと太い線にしました

ver1.1.2 (2017/3/8)

  • 画面をズームした時にペン先がずれる問題を修正
  • ベジェツールのハンドルの表示を修正

ver1.1 (2017/1/31)

  • ブラウザが IE と Edge の場合ふたばへの投稿に失敗するので、
    これらのブラウザで起動すると警告を表示するようにしました。

  • テキスト入力ツールの不具合修正

  • 保管ペンのバグ修正

  • カラースライダの上で shift+クリックして値を 1 ずつ上下できるように修正

  • その他細かいバグ修正

ver1.0 (2016/12/22)

  • バグ修正

    だいたい終了です
    加算逆加算は結局できませんでした
    そのうち誰かが直してくれると期待して撤退……

ver1.0

ver0.9 (2016/12/18)

  • Edge 対応
  • IE 対応
  • バグ修正

ver0.8 (2016/12/13)

  • ベジェ曲線

  • 角取り・ぼかし

  • 加算・逆加算テスト

  • リロードした時にキャンバスが保存されるように修正

  • Chrome でドラッグ中のカーソルがおかしくなる問題を修正

    残り時間でバグをできるだけ取ります

ver0.7 (2016/12/5)

  • 覆い焼き・焼き込み
  • テキスト入力テスト
  • サンプル掲示板設置

ver0.6 (2016/11/22)

  • 水彩と鉛筆はどうやっても似ないのでひとまずこれで

  • トーン

  • 直線

  • 傾け

  • 四角とか楕円とか

    しんどい

ver0.5 (2016/11/3)

  • スクロールバーをちゃんと表示するように修正
  • キーボードショートカットを一部実装
  • コピーツールのテスト
  • 保管ペンのテスト ver0.5
    だいぶ飽きてきましたが
    年末までには何とか ver1.0 にしたいと思います

ver0.4.5 (2016/10/23)

  • ブラウザ化テスト

  • 画像の解像度を選んで描きはじめられるようになりました

    お絵かき本体はあんまり進んでないです

  • 消し四角・レイヤー結合・上下反転・左右反転

  • マウスポインタが指の形になっていたのを修正

  • 消しペンにもマスクがかかるように修正

ver0.4 (2016/10/11)

  • ウィンドウビュー

  • マスク・逆マスク

  • ボタンとかスライダとか実装

  • カーソルをちゃんと xor で表示するように修正

ver0.3 (2016/10/4)

  • 鉛筆・消しペン・塗り潰し
  • 透明度
  • 拡大した画像をスクロールできなかったのを修正
  • マスクのテスト
  • 外部のブラウザに飛ばずに送信画面を自分で開いてみるテスト
    ver0.1

ver0.2 (2016/9/28)

いろいろ中途半端なのでこのバージョンは見送ったほうがいいです

ver0.1 (2016/9/21)

とりあえず画像を既存の掲示板に送信するところだけ作って検証
ver0.1


  • しぃペインターとか Poo とかは作りません

About

PaintBBS NEO (リポジトリを再作成しました) https://github.com/funige/neo/blob/master/README-neo2.md

Resources

Stars

Watchers

Forks

Releases

Packages

Used by

Contributors

Languages