これは何か
キレ(Kire)は、ブラウザの中で動く 5 つのツールです。11 種類の形式の間の画像変換、パスポート写真・Instagram・YouTube・LinkedIn のように規格ごとに専用ページがある規格トリミング、GIF の作成・縮小・速度変更、動画のトリミング・変換・結合・圧縮、PDF の結合・分割・回転・ページ並べ替え・画像の出し入れ・圧縮。サーバーはなく、ファイルがネットワークを通ることもありません。結果にはバイトに何が起きたかを示すバッジが付きます。再エンコードなしのコピー、全ピクセル同一の保存し直し、損失を伴う保存し直しのいずれかです。
トリミングの仕組み
JPEG は保存するたびに画質が一世代ずつ劣化します。ただし 8 px または 16 px のブロック格子に沿ってトリミングする場合は例外で、圧縮された係数をそのまま複製するため、再エンコードする必要がありません。コマンドラインツールの jpegtran はまさにこれを行っており、本サイトは同じ、変更を加えていない C コード(libjpeg-turbo の transupp.c)を WebAssembly にコンパイルしてブラウザ内で実行します。同じ写真、同じ範囲であれば、出力が jpegtran の結果とバイト単位で一致することをハッシュで確認済みです。
自動モードは OpenCV.js と YuNet 顔検出モデルで顔の位置を見つけ、それをもとにトリミングの構図を決めます。このモデルもブラウザ内でのみ動作し、自動を選んだときだけダウンロードされます。
誰が作っているか
IMINADA が制作・運営しています。社名は瀬戸内海の伊予灘に由来し、上の図はその海に面した下灘駅のホームにある待合所です。
ライセンス表記
本サイトは以下のオープンソースソフトウェアを含んでおり、各ライセンスが求める通りにここで表記します。
- libjpeg-turbo — 可逆トリミングエンジン(transupp.c)。IJG License、Modified (3-clause) BSD License、zlib License。This software is based in part on the work of the Independent JPEG Group.
- OpenCV — 顔検出ランタイム(OpenCV.js)。Apache License 2.0。
- YuNet — 顔検出モデル(face_detection_yunet_2023mar.onnx、OpenCV Zoo)。MIT License。
- react-easy-crop — トリミング枠の UI。MIT License。
- pdf-lib — /pdf ページでの PDF ファイルの読み書き。MIT License。
- PDF.js — PDF から JPG、PDF から PNG のページで PDF の各ページを画像として描画します。Apache License 2.0。付属する JPEG 2000 デコーダー(OpenJPEG、BSD 2-Clause)、JBIG2・ファックスデコーダー(PDFium、BSD 3-Clause。PDF から画像を抽出するページでも白黒スキャンの展開に使用)、色管理(qcms、MIT)、PDF の標準フォントを代替するフォント(Foxit、BSD 3-Clause、Liberation、GPL 2.0、フォント例外条項付き)を含みます。各ライセンス全文は /pdfjs/ 以下の該当ファイルの隣に置かれています。
- FFmpeg(n5.1.4、ffmpeg.wasm のレシピに沿って当サイトが独自にビルド)— /video の変換・リサイズ・結合・圧縮ページで、ブラウザ自身のコーデックでは足りないときの動画の再エンコード。このビルドには x264 が含まれ、GNU General Public License version 2 or later で配布されています。内部のライブラリ(libvpx、LAME、Vorbis、Ogg、zlib)はそれぞれ独自のライセンスに従います。ライセンス全文と完全な一覧は隣に置かれています(/ffmpeg/COPYING.GPLv2、/ffmpeg/SOURCE.txt)。ビルドに使ったすべてのライブラリの完全なソースコードも、そのビルド時点のコミットのまま /ffmpeg/source/ に置いています。
- libheif(libheif-js)— 変換ツールでの HEIC 読み込み、libde265 デコーダーを含みます。GNU Lesser General Public License 3.0。サイトのコードには組み込まず、独立したファイル(/wasm/libheif.js、/wasm/libheif.wasm)として提供し、ビルドに使った版のソース(libheif 1.23.2、libde265 1.0.15)はエンジンのソースと同じ /ffmpeg/source/ に置いています。
- @jsquash/avif、@jsquash/webp — AVIF と WebP のエンコードとデコード。Apache License 2.0。内部のコーデックは libavif、libaom(BSD 2-Clause)、libwebp(BSD 3-Clause)です。
- fast-png、fflate、iobuffer、gifenc、UTIF — PNG・GIF・TIFF の読み書き。MIT License。UTIF に含まれる pako は MIT と zlib License です。
- Next.js、React — MIT License。
- Emscripten — WebAssembly ツールチェーン。MIT License。
- Pretendard — 書体。SIL Open Font License 1.1。
- Noto Sans SC — 簡体字中国語ページの漢字。SIL Open Font License 1.1。