可能な視聴者はすでに気づいているかもしれません(私はこのブログに他の人が関心を持っていないと思っていますが)、Soptlog の前のバージョンでは、すべての記事の画像の左下にウォーターマークがありました。しかし、このバージョンではすべてのウォーターマークが削除されました。最初にウォーターマークを追加した動機は非常に単純で、1 つは Ruby で Node.js を呼び出す能力をテストするためであり、2 つは私のコンテンツをコピーして貼り付けるブログがあり、出典を明示していないことに気づいたため、ウォーターマークの方法で「主権を表示」しようと思いました。しかし、今では私には適していないと思います。
実装方法#
将来的に同様の機能を実装したいと考える人がいるかもしれないので、Jekyll でコンパイル時にウォーターマーク画像を生成する方法を簡単に説明します。
まず、原則として、コンパイル後の画像の見た目は気にしませんが、元の画像を変更することはできません。 そのため、一括で元の画像にウォーターマークを追加することはできません。代わりに、Jekyll がサイトを生成するプロセスで画像を処理する必要があります。そのため、重要なフックのメソッドは、Jekyll::StaticFile
のcopy_file(dest_path)
メソッドです。このメソッドの主な機能は、静的ファイルを元の場所からサイトの場所 _site/
にコピーすることです。私たちはすべての画像をこのプロセスでインターセプトし、自分の方法でコピーするだけです。
Ruby の画像処理は主にimageMagick
に依存しているため、リモート CI ごとに重いライブラリをインストールするのはあまり好ましくありません。そのため、画像処理は主に Node.js で書かれたSharp
を使用しています。
Ruby の呼び出しは主に SystemCall
に依存しているため、実際にはかなり遅いですが、後でより良い方法を思いついたら追加します。SystemCall
は遅すぎるので、後でSocket
呼び出しに変更しました。瞬時に速度が 8 倍になりました。
なぜ私には適していないのか#
私は外見にこだわるタイプで、ウォーターマークを追加すると とても見栄えが悪いです。
代替案#
私はまだウォーターマークを追加したいと思っていますが、「非常に優雅に追加する」必要があります。現在、ステガノグラフィーを考えており、独自の暗号化アルゴリズムを実装するかもしれません。進捗があれば後で追加します。 現在の実装方法は、コンパイルプロセス中に画像にステガノグラフィーを施すことです。