워터마크 이미지

:information_source: 요약 사용자가 업로드한 이미지에 자동으로 워터마크를 추가합니다
:hammer_and_wrench: 저장소 GitHub - Arkshine/discourse-watermark-image · GitHub
:question: 설치 가이드 테마 또는 테마 컴포넌트 설치 방법
:open_book: 디스코urs 테마가 처음이신가요? 디스코urs 테마 사용 입문가이드

이 테마 컴포넌트 설치

설명

이 테마 컴포넌트는 사용자가 업로드한 이미지에 자동으로 워터마크를 추가합니다. 이미지나 QR 코드를 워터마크로 사용할 수 있으며, 위치, 외관, 분포 패턴에 대한 광범위한 사용자 지정 옵션을 제공합니다.

카테고리 및 사용자 그룹 설정을 통해 세밀한 제어가 가능하며, 커뮤니티의 필요에 맞게 워터마킹 동작을 맞춤 설정할 수 있습니다.

구현 전에 중요 참고 사항 섹션을 검토해 주세요.

기능

  • WebAssembly 및 Web 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-left, top-center, top-right, center-left, center, center-right, bottom-left, bottom-center, bottom-right
기본값: "bottom-right"
margin_x 가장자리로부터의 수직 여백 (대상 이미지의 %)
기본값: 0
margin_y 가장자리로부터의 수직 여백 (대상 이미지의 %)
기본값: 0
opacity 워터마크 불투명도. 범위: 1-100
기본값: 100
rotate 회전 각도.
범위: -360도에서 360도까지
기본값: 0
blend_mode 워터마크가 이미지와 블렌딩되는 방식: normal, overlay, over, atop, xor, plus, multiply, burn, difference, soft_light, screen, hard_light, dodge, exclusion, lighten, darken.
기본값: "normal"
pattern 워터마크 반복 패턴: single, grid, diagonal, random
기본값: "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: 중요 참고 사항

  • 원본 이미지는 보존되지 않음
    워터마크는 서버 업로드 전에 적용되며, 원본 이미지는 유지되지 않습니다. 프로덕션 환경에 배포하기 전에 워터마크 설정을 철저히 테스트하세요.

  • 관리 패널에서 테스트할 경우, 설정을 즉시 확인하지 않도록 주의하세요. 안전을 위해 그룹이나 카테고리를 생성하는 것을 권장합니다.

FAQ

왜 이미지 형식이 제한되어 있나요?

디스코urs는 모든 업로드를 JPEG로 변환하지만, 이 TC 워터마킹은 특정 이미지 처리 라이브러리를 사용하여 원본 형식에서 업로드 전에 발생합니다. 업로드 후 워터마킹도 가능하지만, 여러 번의 업로드/다운로드 사이클이 필요하며 컴포저 경험을 영향을 미칠 것입니다. 이 워크플로우에 대한 개선 사항을 계속 탐구하고 있습니다.

왜 텍스트 워터마킹이 지원되지 않나요?
텍스트 워터마킹은 전용 인터페이스 없이 효과적으로 구현하기 어려운 광범위한 설정 옵션(폰트 선택, 스타일링 등)이 필요합니다. 이미지 워터마크는 더 많은 유연성을 제공하며 기존 디자인 도구를 사용하여 생성할 수 있습니다.

로드맵

미래 개발 계획에는 다음이 포함될 수 있습니다:

  • 여러 워터마크 프로필 [1]
  • 원본 이미지 보존 [2]
  • 업로드 후 워터마킹

크레딧

이 테마 컴포넌트는 다음으로 구동됩니다:


  1. 업로드 입력은 Object 설정 유형으로 부분적으로 지원됩니다 – 현재 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 Sorry, the file you are trying to upload is not authorized (authorized extensions: jpg, jpeg, png, woff, woff2, svg, eot, ttf, otf, gif, js, dwg).

1개의 좋아요

이상하네요. 사용 중인 Discourse 버전은 얼마인가요?
허용 목록에 wasm 확장자를 추가해 볼 수 있지만, 제 로컬 환경과 프로덕션 환경 두 곳에서는 아무런 변경 없이 정상적으로 작동하고 있습니다. :thinking:

1개의 좋아요

피드백을 드릴게요. 무슨 일이 일어나고 있는지 모르겠지만, 중국 사용자들은 업로드한 이미지에 워터마크가 없는 것 같아요.

저는 새로 만든 계정으로 이 노트레이스(무자국) 모드를 켜서 사용 중인데, 저에게는 정상적으로 작동하니까 문제가 뭔지 모르겠어요.

때로는 작동하기도 하고, 때로는 작동하지도 않아요.

업로드하는 이미지는 .jpeg, .png 형식인데, 영상 속 사진처럼 이미지를 복사해서 업로드하면 워터마크가 찍혀서 문제가 뭔지 모르겠어요.

피드백 감사합니다!

사용자분은 어떤 방식으로 시도해도 항상 잘 작동하죠?

문제가 발생했을 때 사용자분들께 브라우저 콘솔을 확인해 보시고, 보게 되는 에러 메시지를 복사해서 보내달라고 요청해 주실 수 있을까요? 또한 모바일 기기(안드로이드, 아이폰 등)를 사용 중인지도 확인해 주세요. 문제가 재현되는 정확한 조작 과정을 설명해 주실 수 있다면 큰 도움이 될 것입니다.

이미지 자체에 문제가 있는 것 같지는 않습니다. 나중에 직접 워터마크를 넣을 수 있다면요. 남은 가능성은 이전 문제와 같은 코드 오류이거나, 워터마크 처리 과정에서의 오류입니다. 불행히도 저는 어떤 방식으로 시도해도 문제를 재현할 수 없습니다.

나중에 컴포넌트를 업데이트하여 모든 오류를 포착하고 사용자에게 표시되도록 조치하겠습니다.

안녕하세요, 이 컴포넌트를 만들어 주셔서 감사합니다.
워터마크 사진을 업로드하려고 했을 때 이 오류가 발생했습니다. JPEG, Webp 형식으로도 시도해 보았지만 여전히 성공하지 못했습니다.

제 Discourse 포럼은 최신 상태입니다.

1개의 좋아요

@LaptechInfo 님 안녕하세요

좀 이상하네요. 이 시점에서 TC는 아무 동작도 하지 않아야 합니다. 이것은 표준 업로드 설정입니다.
브라우저 콘솔을 확인해서 오류 메시지가 있는지 봐주시겠어요?

제가 테스트를 해볼 수 있도록 실패하는 이미지도 공유해 주실 수 있을까요?

1개의 좋아요

안녕하세요, 여러 이미지를 무작위로 시도해 보았지만 아무것도 작동하지 않았습니다.
저는 프로그래머가 아니고, 컴퓨터 언어에 대한 지식이 전혀 없습니다.
이 이미지를 시도해 보세요, 제가 지쳤습니다.
laptechinfo webp.zip (558 Bytes)
watermark.zip (257.7 KB)

@Arkshine

1개의 좋아요

감사합니다! 콘솔 탭의 내용도 보여줄 수 있을까요? 바로 다음에 있는 탭을 말해요. 도움이 될 것 같아요.

수정: 재현할 수 있을 것 같으니 확인해 보고 곧 다시 연락드릴게요!

콘솔 탭


@Arkshine

@LaptechInfo 감사합니다! 어제 PR로 인해 Discourse에 버그가 생겼습니다. 관련 주제를 만들었습니다: Can't upload image in settings. :+1:

3개의 좋아요