왜 기본적으로 PNG를 JPG로 변환하나요?

이 기능이 관리자가 토글할 수 있도록 사이트 설정에 노출되어 있다는 점을 충분히 이해(그리고 감사)합니다. 하지만 솔직히 이 "기능"은 애초에 매우 잘못된 방향이라고 생각합니다.

PNG에는 두 가지 매우 중요한 특징이 있습니다. 바로 손실 없는(그리고 가독성이 좋은!) 텍스트 표현과 투명도 지원입니다. 이 두 가지 모두 PNG를 사용해야 하는 중요한 이유입니다. Discourse 사이트의 사용자로, 저는 투명도가 있는 텍스트 이미지를 보드에 업로드했는데, 자동으로 JPG로 변환되어 매우 실망했습니다. 괜찮습니다. 다른 곳에 호스팅하면 되니까요. 그런데 @system이 와서 제 이미지를 다운로드하고 변환한 뒤, 제 게시글을 몰래 수정해 버렸습니다. 투명도가 깨져서 오히려 더 보기 흉해졌습니다. 다행히 저도 관리자라 웹을 검색해 아래 스레드 중 하나를 찾아 png to jpg quality 설정을 변경할 수 있었습니다.

최소한 GIF에 투명도가 있는 경우 이 기능을 꺼두는 것이 현명해 보입니다.

여러분은 실제로 보드에서 이 기능을 _좋아_하나요? 이 문제는 이전에 두 번이나 제기된 적이 있는데, 그때마다 PNG가 변환되는 것에 대해 혼란스럽거나 불만을 가진 사람들이 있었습니다. 이 기본값을 다시 한번 검토해 볼 가치가 있어 보입니다.

3개의 좋아요

이것은 JPG로 변환된 이미지가 훨씬 더 작았다는 것을 의미합니다. 이 임계값을 조정할 수 있는 사이트 설정이 있다고 생각합니다. 설정을 살펴보고 사이트 설정을 검색해 보세요.

4개의 좋아요

설정/파일에서 하단에서 세 번째 항목까지 아래로 스크롤하세요. 이미지 메타데이터 제거 옵션의 체크를 해제합니다. 바로 위에는 png to jpg quality 항목이 있습니다. 필요에 따라 설정을 조정하세요.

5개의 좋아요

네, 이 기능이 설정 가능하다는 점(내 사이트에서는 이미 비활성화했습니다)과 그 동기까지 충분히 이해합니다. 하지만 여전히 이 기능 자체가 처음부터 잘못된 방향이라고 생각하며, 기본값을 변경하는 것이 합리적이라고 봅니다.

예를 들어, 스크린샷의 기본 파일 형식은 PNG이며, 이는 당연합니다. 이 창을 스크린샷으로 찍어 업로드하면 JPG로 변환됩니다.

원본 파일은 361KB였는데, 압축된 JPG는 218KB입니다. 물론 파일 크기는 줄었지만, 투명도도 함께 사라져 다크 테마를 사용하는 사용자에게는 보기 흉해 보입니다. 또한 텍스트 주위에 아티팩트(화질 저하)가 발생합니다.

반대로, 로컬에서 optipng를 사용해 PNG를 최적화하면 투명도가 유지되고 텍스트가 선명한 파일이 219KB로 생성됩니다. 이렇게 하면 업로드 시에도 PNG 형식으로 유지됩니다:


PNG를 JPG로 변환하는 것은 손실이 매우 큰 변환입니다. 업로드 시 이를 수행하는 것과, 게시 후 외부 이미지에 대해 자동으로 변환하기 위해 게시물을 편집하는 것은 또 다른 문제입니다. 대역폭과 저장 공간을 절약할 수 있는 다른 방법들, 예를 들어 PNG 최적화 도구나 리사이징(클릭하여 전체 크기 보기 기능이 있으므로 게시물에는 작은 이미지를 임베드하고 클릭 시에만 전체 크기 이미지를 표시하는 방식) 등이 있습니다.

4개의 좋아요

이것은 균형 잡기입니다.

포럼을 가능한 한 저렴하게 호스팅하려는 사람들이 꽤 많고, 이미지가 너무 많은 공간을 차지한다고 불평하는 경우가 있습니다. 이런 유형의 관리자는 이미지 품질에는 관심이 없고, 모든 비용을 아끼고 지출을 줄이는 것만 원합니다.

반면 스펙트럼의 반대쪽에는 커뮤니티에 진정으로 열정을 쏟는 사람들이 있습니다. 이들은 객체 스토리지를 활용하여 합리적인 비용으로 좋은 품질을 제공할 수 있습니다.

여기서 논의되는 것은 기본값에 관한 것이죠? 아니면 최적화 후 JPG 크기와 PNG 크기를 비교해 보는 건 어떨까요? 기억이 정확하다면 PNG 최적화는 꽤 비용이 많이 들 수 있습니다…

9개의 좋아요

이 논쟁에서는 이기지 못할 겁니다, 친구. 여기서 그만두는 게 좋겠습니다. 사이트 설정은 취향에 맞게 조정할 수 있도록 존재합니다.

2개의 좋아요

이 기능을 제거하는 일은 일어나지 않을 겁니다. 하지만 이 게시글은 흥미로워 보이네요:

Discourse가 먼저 optipng를 사용해 보고, 그 결과로 나온 "최적화"된 크기를 기준으로 JPG로 변환할지 결정하게 하려면 어떤 조치가 필요할까요? 아니면 그렇게 하면 너무 느려질까요?

4개의 좋아요

6000x6000 PNG 파일에 optipng을 실행해 보시고 무슨 일이 일어나는지 확인해 보세요. 우리도 이미 비슷한 방식을 사용하고 있지만, 알고리즘적 한계에 빠르게 부딪혀 성능이 급격히 떨어집니다. 그것도 아주 심각하게요.

5개의 좋아요

해당 기능을 없애자는 의도는 전혀 없으며, 이를 ‘misfeature(잘못된 기능)’라고 표현한 것이 다소 과장되었던 것 같아 죄송합니다. 핵심은 기본값에 있습니다. 해당 동작이 예상과 달랐고 도움이 되지 않는다는 점을 발견했기 때문입니다(외부 링크로 우회 조치를 했다가 자동으로 다시 편집되어 되돌아온 경험은 특히 그랬죠). 그래서 기본값이 다르게 설정된다면 다른 사용자들에게도 도움이 될 것 같아 이곳에 글을 남겼습니다… 하지만 모든 기본값 선택과 마찬가지로, 트레이드오프에 대한 주관적 선호도가 빠르게 개입하게 됩니다.

Rafael, 잘 논리적으로 정리된 글을 올려주셔서 감사합니다. 토론을 소중히 생각합니다 — 처음에도 말씀드렸듯이, 저는 진심으로 이 기능을 좋아하시는지 여부에 대해 질문한 것입니다.

3개의 좋아요

.jpg에서 .webp로 변경하면 흥미롭겠다. 손실 압축이지만 여전히 .png보다 파일 크기가 작기 때문이다.

내 이해로는 .webp가 미디어, 특히 투명도가 필요한 이미지에 사용하는 새로운 웹 표준이라는 것이다.

3개의 좋아요

구형/호환되지 않는 브라우저(IE 및 Safari)가 지원하지 않기 때문에 변경할 수 없습니다.

11개의 좋아요

지금은 Safari가 너무 짜증나지만, 빠른 답변 감사합니다. 곧 지원이 추가되길 바랍니다.

특히 시간이 지날수록 IE11의 중요성은 점점 줄어들 테니까요.

2개의 좋아요

현재 기본값이 최적화된 JPEG로 설정된 것이 잘못된 결정이라는 뜻은 아닙니다! 저는 그래픽 작업에서 PNG를 좋아하고 :smile_cat: JPG를 싫어하지만 :grumpycat:, 이 사안에 대해서는 현재의 체제(권위와 시스템이라는 두 가지 의미 모두)를 전적으로 지지합니다.

Discourse 팀은 Discourse가開箱即用(out of the box)으로 성공하려면 무엇이 필요한지 현실적인 평가를 내렸습니다:

  • 평균적인 사이트 관리자-운영자는 이미지 품질 옵션을 찾지 않을 것입니다. 그들은 이미지 품질을 목표로 삼지 않으며, 기본 이미지 파일 형식을 문제로 여기지 않을 것입니다. 따라서 최적화된 JPG를 기본값으로 설정하는 것이 가장 많은 사람들에게 가장 적은 불편함과 가장 큰 이점을 제공합니다.

  • 저와 같은 PNG 애호가들은 항상 이미지 품질과 정보를 보존할 수 있는 사이트 옵션을 찾습니다. 마찬가지로 사진 및 이미지 중심의 사이트에서는 이미지 품질이 핵심 결정 사항이 될 것입니다.

현재 접근 방식의 실용적인 결과는 손실 압축 WebP로의 원활한 전환이 될 가능성이 높습니다. 그러면 손실 압축과 무손실 WebP의 문제는 아마도 여기서 더 많은 주제로 다뤄질 것입니다. :laughing:

PNG 파일을 많이 최적화해 본 적이 있다면, 그 결과가 만족스럽지 않다는 것을 알 것입니다. JPG 최적화 도구와 비교하면 PNG 최적화 도구는 정말 오래 걸립니다. 또한 가장 효과적으로 최적화할 수 있는 PNG 이미지를 만들려면 더 많은 노하우가 필요합니다. 예: https://medium.com/@duhroach/reducing-png-file-size-8473480d0476 또는 How To Optimize PNG — Smashing Magazine

5개의 좋아요

결국 우리가 갖게 될 기능 중 하나는 사용자가 업로드 전에 이미지를 최적화할 수 있는 능력입니다.

압축 작업을 다른 스레드(웹 워커 사용)로 분리하고, 서버에서 사용하는 것과 동일한 알고리즘(WASM 사용)을 적용하면 사용자 경험도 나쁘지 않습니다.

15개의 좋아요

PNG에 투명도가 있는 경우 이 동작을 비활성화하는 것에 대해 어떻게 생각하시나요? 변환 과정에서 가장 눈에 띄는 손실이 바로 그것이기 때문입니다.

4개의 좋아요

아래 방법으로 감지할 수 있는 것 같습니다.

https://stackoverflow.com/a/58468633

5개의 좋아요

스크린샷 프로그램에 그림자 삽입을 중단하도록 설정하면, 실제로 텍스트와 단색으로만 구성되어 있으므로 Discourse가 이를 변환하지 않을 가능성이 높습니다.

5개의 좋아요

오늘 한 사이트에서 업로드된 모든 PNG 파일이 PNG 형식으로 유지되도록 설정하는 방법에 대해 조사하고 있었습니다. png to jpg quality를 100으로 설정해도, recompress original jpg quality 설정도 100으로 함께 설정하지 않는 한 Discourse는 여전히 큰 PNG 파일을 JPG로 변환하는 것을 발견했습니다. 이것이 의도된 동작인가요? 그렇다면 recompress original jpg quality 설정의 설명을 업데이트하여 PNG 업로드에 미치는 영향을 명확히 설명해야 합니다.

8개의 좋아요

음, 잘 모르겠네요. @sam 다음 주에 그 결정을 내리려던 거예요? 적어도 카피를 업데이트해야 할 것 같아요.

3개의 좋아요

확신은 없는데… 여기서는 @zogstrip 님에게 맡기겠습니다…

4개의 좋아요