見出し画像

BFスプラッシュ画面の作成補助ツール

BetaFlightのスプラッシュ画面に使える画像は、白黒と緑の3色でなければ許してくれませんが、Photoshopで作る場合、テキストの縁がぼんやりとなり、3色の中間色の部分ができてしまいます。ぼんやりとした部分を強制的に3色に寄せるスクリプトを作りました。

縁がぼんやりしているとBetaFlightでは認識してくれない
強制的に3色に寄せる

注意

・動作が非常に遅いです、M1Macで6分かかります
・Photoshopの動作が不安定になりますので、1画面処理したらPhotoshopを再起動してください

スクリプト

下部のコードを「好きな名前+.jsx」でPhotoshopフォルダのPresetsの中のScriptsフォルダに保存し、Photoshopを再起動します

使い方

288 x 72ピクセルで作った画像が開いている状態で
ファイルメニュー → スクリプト → 「好きな名前」を選ぶと3色になります

/////////////////////////////////////////////
// ninjaMoonLight
//  288 x 72 ping
/////////////////////////////////////////////
if (documents.length > 0) {
  app.activeDocument.flatten();
  if (activeDocument.width != 288) {
    alert("幅は288pxでなければいけません");
  } else {
    if (activeDocument.height != 72) {
      alert("高さは72pxでなければいけません");
    } else {
      main();
    }
  }
} else {
  alert("画像を開いてください");
}
///////////////end
function main() {
  for (var j = 0; j < 72; j++) {
    for (var i = 0; i < 288; i++) {
      RGBColor = new SolidColor();
      RGBColor.red = 255;
      RGBColor.green = 0;
      RGBColor.blue = 0;
      activeDocument.selection.select([
        [i, j],
        [i + 1, j],
        [i + 1, j + 1],
        [i, j + 1],
        [i, j],
      ]);

      var myColor = new SolidColor();
      myColor.rgb.red = findPV(activeDocument.channels[0].histogram);
      myColor.rgb.green = findPV(activeDocument.channels[1].histogram);
      myColor.rgb.blue = findPV(activeDocument.channels[2].histogram);

      if (
        myColor.rgb.red < 129 &&
        myColor.rgb.green > 128 &&
        myColor.rgb.blue < 129
      ) {
        RGBColor.red = 0;
        RGBColor.green = 255;
        RGBColor.blue = 0;
      }
      if (
        myColor.rgb.red > 128 &&
        myColor.rgb.green > 128 &&
        myColor.rgb.blue > 128
      ) {
        RGBColor.red = 255;
        RGBColor.green = 255;
        RGBColor.blue = 255;
      }
      if (
        myColor.rgb.red < 129 &&
        myColor.rgb.green < 129 &&
        myColor.rgb.blue < 129
      ) {
        RGBColor.red = 0;
        RGBColor.green = 0;
        RGBColor.blue = 0;
      }

      activeDocument.selection.fill(
        RGBColor,
        ColorBlendMode.NORMAL,
        100,
        false
      );
    }
    app.purge(PurgeTarget.ALLCACHES);
  }
  app.purge(PurgeTarget.ALLCACHES);
  activeDocument.selection.deselect();
  app.beep();
  alert("Done");
}

function findPV(h) {
  for (var i = 0; i <= 255; i++) {
    if (h[i]) {
      return i;
    }
  }
  return 0;
}

QRコードも入れる

スプラッシュ画面にQRコードを入れておくとTinyViewPlusで「Q」キーを押した時にスプラッシュ画面が表示されるとパイロット名が設定できます
スプラッシュ画面は縦が72ピクセルなのですが、生成されたコードは白マージンが多めなので100ピクセルで生成します
下記のURLの最後のパイロットメイを自分の名前に置き換えてブラウザのurl欄に貼り付けるとコードを生成してくれます

https://chart.apis.google.com/chart?cht=qr&chs=100x100&chl=パイロットメイ

この記事が気に入ったらサポートをしてみませんか?