ウォーターマーク画像

:information_source: 概要 ユーザーがアップロードした画像に自動的に透かしを追加します
:hammer_and_wrench: リポジトリ GitHub - Arkshine/discourse-watermark-image · GitHub
:question: インストールガイド テーマまたはテーマコンポーネントのインストール方法
:open_book: Discourse テーマに初めての方へ Discourse テーマの利用に関する初心者向けガイド

このテーマコンポーネントをインストールする

説明

このテーマコンポーネントは、ユーザーがアップロードした画像に自動的に透かしを追加します。画像または QR コードを透かしとして使用でき、位置、外観、配置パターンについて広範なカスタマイズオプションを提供します。

カテゴリとユーザーグループの設定を通じて詳細な制御が可能であり、コミュニティのニーズに合わせて透かし処理の動作を調整できます。

実装前に 重要なお知らせ セクションを必ずご確認ください。

機能

  • WebAssemblyWeb Workers を使用した高パフォーマンス処理
  • 多様な画像形式のサポート(PNG、JPEG、BMP、ICO、TIFF、WEBP)
  • 動的な QR コード透かしの生成
  • 柔軟なサイズ設定オプション(相対または絶対)
  • 多様な配置システム
  • 高度な外観カスタマイズ(透明度、回転、スケール、余白など)
  • 複数のブレンドモード
  • パターン配置オプション(単一、グリッド、対角線、ランダム)
  • カテゴリおよびユーザーグループ固有の設定
  • 設定パネルでのライブプレビュー

設定

設定名 説明
image 透かしとして使用する画像。
サポート形式:PNG、JPEG、BMP、ICO、TIFF、WEBP。
デフォルト:""
size_mode 透かしのサイズの計算方法:
- relative:ターゲット画像の幅に対して相対的なサイズ。
- absolute:元のサイズで適用。
デフォルト:"relative"
relative_width ターゲット画像の幅に対する透かしの幅(%)。
透かしのサイズモードが relative の場合にのみ適用されます。
範囲:1-100
デフォルト:10
absolute_scale 元の透かしのサイズに対するスケール係数(絶対モードでのみ使用)。最小値:0.01
デフォルト:1
max_size 画像の寸法に対する最大サイズ(%)。範囲:1-100
デフォルト:50
position 透かしの位置:top-lefttop-centertop-rightcenter-leftcentercenter-rightbottom-leftbottom-centerbottom-right
デフォルト:"bottom-right"
margin_x 端からの水平方向の余白(ターゲット画像の %)
デフォルト:0
margin_y 端からの垂直方向の余白(ターゲット画像の %)
デフォルト:0
opacity 透かしの透明度。範囲:1-100
デフォルト:100
rotate 回転角度。
範囲:-360〜360 度
デフォルト:0
blend_mode 透かしと画像のブレンド方法:normaloverlayoveratopxorplusmultiplyburndifferencesoft_lightscreenhard_lightdodgeexclusionlightendarken
デフォルト:"normal"
pattern 透かしの繰り返しパターン:singlegriddiagonalrandom
デフォルト:"single"
pattern_allow_partial 画像の端で部分的な透かしを許可
デフォルト:true
pattern_max_count 透かしの最大繰り返し回数(0 の場合は無限)
デフォルト:50
pattern_spacing 繰り返し透かし間の間隔(ターゲット画像の %)
デフォルト:15
qrcode_enabled QR コード透かしを有効化
デフォルト:false
qrcode_text QR コードにエンコードするテキスト。プレースホルダーサポート:{homepage}{username}{topic_url}
デフォルト:""
qrcode_color QR コードの色(16 進数または CSS 変数)
デフォルト:"var(--primary)"
qrcode_background_color QR コードの背景色(16 進数または CSS 変数)
デフォルト:"var(--secondary)"
qrcode_quiet_zone QR コード周囲の余白の幅(0-10 モジュール)
デフォルト:2
qrcode_error_correction エラー訂正レベル:Low(約 7%)、Medium(約 15%)、Quarter(約 25%)、High(約 30%)
エラー訂正レベルの詳細については、こちら をご覧ください。
デフォルト:"Medium"
categories 透かしを適用するカテゴリ。
デフォルト:""
groups 透かしを適用するユーザーグループ。
デフォルト:"0"
skip_small_images 画像が min_image_dimensions 未満の場合は透かし処理をスキップ。
デフォルト:false
min_image_dimensions 必要な最小寸法(幅 x 高さ)
デフォルト:"200x200"
allow_non_supported_uploads サポートされていない形式の場合でも画像アップロードを継続可能にする
デフォルト:false

透かしの種類

画像

このコンポーネントは、PNG、JPEG、BMP、ICO、TIFF、WEBP の複数の画像形式をサポートしています。
形式サポートの制限に関する重要な情報は、FAQ セクションをご覧ください。

QR コード

以下の変数を使用して、カスタマイズ可能なコンテンツを持つ動的な QR コードを生成します:

  • {homepage} - ホームページの URL
  • {username} - ユーザー名
  • {topic_url} - トピックの URL

重要: QR コード透かしのスタイルを設定する際は、コントラストとサイズに注意してください。コントラスト比が低い場合や過度なスタイル設定は、QR コードの読み取りを困難にします。必ずスキャンアプリで QR コード透かしをテストしてください。

リアルタイムプレビュー

設定パネルにはリアルタイムプレビュー機能が含まれており、透かしの設定がサンプル画像にどのように影響するかを即座に確認できます。
プレビューウィンドウには、以下のインタラクティブな機能があります:

  • サイズ変更および移動可能なプレビューウィンドウ
  • ランダムなサンプル画像の読み込みオプション
  • デバイスから独自のテスト画像をアップロードするサポート

デスクトップでは自動的に開きます。また、ページ下部のボタンから開くこともできます:

その他の画像



:warning: 重要なお知らせ

  • 元の画像は保存されません
    透かしはサーバーへのアップロード前に適用され、元の画像は保持されません。本番環境にデプロイする前に、透かしの設定を徹底的にテストしてください。

  • 管理パネルでテストする場合は、設定をすぐに検証しないようご注意ください。安全のために、グループまたはカテゴリを作成することをお勧めします。

よくある質問

なぜ画像形式が制限されているのですか?

Discourse はすべてのアップロードを JPEG に変換しますが、この TC の透かし処理はアップロード前の元の形式に対して行われ、特定の画像処理ライブラリを使用しています。アップロード後の透かし処理も可能ですが、複数のアップロード/ダウンロードサイクルが必要となり、コンポーザーの体験に影響します。私はこのワークフローの改善を検討中です。

なぜテキスト透かしはサポートされていないのですか?

テキスト透かしには、フォント選択やスタイル設定など、専用のインターフェースなしでは効果的に実装することが難しい広範な設定オプションが必要です。画像透かしはより柔軟性が高く、既存のデザインツールを使用して作成できます。

ロードマップ

今後の開発計画には以下が含まれる可能性があります:

  • 複数の透かしプロファイル [1]
  • 元の画像の保存 [2]
  • アップロード後の透かし処理

クレジット

このテーマコンポーネントは、以下のライブラリによって動作しています:


  1. アップロード入力は オブジェクト設定タイプ で部分的にサポートされていますが、現時点では TC では実現できません。 ↩︎

  2. プラグイン開発が必要になる可能性があります。 ↩︎

「いいね!」 24

これは最初のバージョンであり、機能が不足している可能性があります。フィードバックをお待ちしています! :+1:

「いいね!」 7

コンポーネントありがとうございます。このコンポーネントは画像を処理しますか?このコンポーネントは元のサイズよりも優れたサイズに画像を圧縮しますか?

「いいね!」 5

コンポーネントは、透かしを適用する以外に変更や圧縮を行いません。

Discourse は、まず画像を前処理します(squoosh ライブラリを使用)-> 透かしが適用されます → 画像がサーバーにアップロードされます。これが仕組みです。

「いいね!」 6


最初に投稿を開いて編集するときは、透かしを入れることはできません。一度投稿してから「投稿の編集」をクリックし、画像をアップロードして透かしを入れる必要があります。
使用されているテーマは FKB Pro - Social theme - #375 by MihirR です。

「いいね!」 2

既存の投稿を初めて開く/編集して画像をアップロードした場合、ウォーターマークは表示されないということですか?これで合っていますか?毎回再現できますか?ブラウザのコンソールにエラーは表示されますか?

もし私の理解が正しければ、既存のアップロード済み画像(このTCインストール前)を編集時にウォーターマーク付きで表示するか、手動でウォーターマークを付ける方法を期待しているということですね。しかし、そのようには機能しません。ウォーターマークを適用するには画像をアップロードする必要があります。

選択した画像に手動でウォーターマークを付けるボタンがあれば、機能として追加できるかもしれません。それでよろしいでしょうか?

新しい投稿を作成した後にアップロードされた画像にはウォーターマークがありません。投稿後に投稿に入り、編集をクリックしてアップロードされた画像にはウォーターマークが付いています。

投稿ボタンについては、Compose Center - #13 を使用しています。

簡単なビデオを作成していただけますか?それを見ると理解しやすくなります。

「いいね!」 1

「いいね!」 3

お待ちいただきありがとうございます!問題を見つけました。これで修正されたはずです!:+1:

「いいね!」 3

このコンポーネントをインストールすると、このエラーが発生します。

Đã xảy ra lỗi: Error creating upload asset: worker_photon_wasm. Original filename 申し訳ありませんが、アップロードしようとしているファイルは承認されていません(承認された拡張子:jpg、jpeg、png、woff、woff2、svg、eot、ttf、otf、gif、js、dwg)。

「いいね!」 1

それは奇妙ですね。Discourseのバージョンは何ですか?

wasm拡張機能を許可リストに追加してみてください。私のローカル環境と2つの本番環境では、何も変更せずに正常に動作しています。:thinking:

「いいね!」 1

フィードバックをさせていただきます。何が起こっているのか分かりませんが、中国のユーザーはアップロードした画像にウォーターマークが付いていないようです。

しかし、私は新しく作成したアカウントで、そのノー・トレース・モードをオンにして使用していますが、機能しています。そのため、問題が何なのか分かりません。

時々機能したり、機能しなかったりします。

削除された画像は.jpeg .pngですが、ビデオ内の画像のようにコピーしてアップロードするとウォーターマークが付くので、問題が何なのか分かりません。

フィードバックありがとうございます!

あなたにとっては、どんなに試しても、いつもうまくいくのですね?

もしそれが起こった場合、ユーザーにブラウザのコンソールを確認してもらい、表示されるエラーメッセージをコピーして送ってもらうようお願いできますか?また、モバイルデバイス(Android、iPhoneなど)を使用しているかどうか、そしてもし可能であれば、何をしたのかを具体的に説明してもらうと、役立つかもしれません。

後でご自身で画像をウォーターマークできるのであれば、画像自体の問題ではないようです。残るは、以前の問題のようなコードのエラーか、ウォーターマーク処理のエラーかのどちらかです。残念ながら、私にはどんなにやっても再現できません。

後でコンポーネントを更新し、エラーが発生した場合にユーザーに表示されるようにします。

このコンポーネントを作成していただきありがとうございます。

透かし写真をアップロードしようとすると、このエラーが発生します。JPEG、Webpも試しましたが、うまくいきませんでした。

私のDiscourseフォーラムは最新の状態です

「いいね!」 1

@LaptechInfo様

それは奇妙ですね。この時点では、TCは何もすべきではありません。これは標準のアップロード設定です。
ブラウザのコンソールを確認して、エラーメッセージが表示されていないか確認していただけますか?

テストできるように、失敗した画像の提供は可能でしょうか?

「いいね!」 1

こんにちは。画像をランダムにいくつか試しましたが、どれも機能しませんでした。
私はプログラマーではなく、コンピューター言語の知識はありません。
この画像をお試しください。もう疲れました。
laptechinfo webp.zip (558 Bytes)
watermark.zip (257.7 KB)

@Arkshine

「いいね!」 1

ありがとうございます!コンソール(そのすぐ右隣のタブ)の内容も表示してもらえますか?それが役立つかもしれません。

編集:再現できると思います。確認して、すぐに連絡します!

コンソールタブ


@Arkshine

@LaptechInfo ありがとう!昨日のPRでDiscourseにバグがありました。トピックを作成しました: https://meta.discourse.org/t/cant-upload-image-in-settings/352213。 :+1:

「いいね!」 3