이미지의 재압축을 완전히 피하는 방법은?

저희는 사진 커뮤니티입니다.

이미지 업로드를 1.2MB로 제한하되, 해당 제한을 충족하는 이미지에 대해서는任何形式的 재압축을 피하고 싶습니다.

이미지가 제한을 초과할 경우, 사용자에게 이를 알리고 업로드를 차단하는 방식을 선호합니다.
하지만 이를 구현하는 방법을 찾지 못했습니다.

일부 사용자가 약간 무거운 이미지를 업로드하면, 시스템이 강제로 크기를 줄이고 재압축을 수행합니다. 그 결과, 포럼이 사진을 망가뜨렸다는(디테일 감소, 색상 그라데이션 저하 등) 사용자 불만이 이어지고 있습니다.

최근 추가된 이미지 편집기 옵션으로 인해 상황이 더 악화되었습니다. 1.2MB 미만인 이미지조차 재압축되고 있습니다.

사용자의 이미지에 대한 어떠한 개입도 피하고 싶습니다(중량과 크기 제한 내에서 이미지를 원하는 대로 조정하는 것은 사용자의 책임입니다).
적어도 주어진 제한을 준수하는 이미지에 대해서는 그렇습니다.

이러한 동작을 얻기 위해 옵션을 가장 잘 구성하는 방법은 무엇인가요?

제한을 준수하지 않는 이미지에 대해서는 재압축을 피할 수 없다고 생각하지만, 적어도 제한을 준수하는 이미지에 대해서는 재압축을 피하고, 초과하는 이미지에 대해서는 압축을 제어하고 싶습니다.

포럼은 이미지를 과도하게 압축하여, 큰 쪽이 900픽셀인 200KB와 같은 결과를 내놓는 경우가 많습니다.

해당 동작을 오버라이드하려면 플러그인이 필요할 것 같습니다.

아니면 다른 곳에 업로드하고 링크를 걸도록 하는 것도 방법입니다.

하지만 MinIO 같은 다른 위치에 이미지를 업로드할 수 있도록 허용하는 플러그인이나 테마 컴포넌트가 있을 것 같습니다. 아마도 그것이 원하시는 기능일 수 있습니다.

예시로 Azure Blob Storage Plugin 와 Video Upload to YouTube and Vimeo using Theme Component 를 참고하세요. 이미지를 어디에 호스팅할지 결정하고, 유사한 테마 컴포넌트를 작성해야 합니다.

음… 다른 사이트에서는 이미지가 사라질 수 있어 우리가 통제할 수 없으므로, 이미지를 우리 서버에 저장하고 싶습니다.

이미지 처리를 완전히 비활성화할 수 없을 것이라 가정하고 있습니다.

시스템이 제한 조건(파일 크기 1.2MB, 긴 변 2048픽셀)을 충족하는 이미지에 손대지 않고, 제한을 초과하는 이미지에 대해 재압축 설정을 조금만 조정할 수 있다면 그것만으로도 충분합니다.

첫 번째 목표는 달성할 수 있을 것 같습니다. 파일 크기 제한을 1230KB로 설정하고 이미지 컴포저의 임계값을 동일한 바이트 크기로 설정했기 때문입니다.

이제 그 크기보다 작은 이미지는 재압축되지 않는 것 같습니다(몇 버전 전에는 그렇게 작동했는데, 이미지 컴포저가 최근에 도입된 것 같습니다).

하지만 2100픽셀, 3MB인 이미지를 업로드하려고 하면 이상한 결과가 나옵니다.
이미지가 900픽셀, 200KB로 리사이즈되거나, 때로는 1024픽셀, 500KB가 되기도 합니다…
이미지의 디테일과 색감이 완전히 사라집니다.

이미지 컴포저의 제한을 1920픽셀로, JPEG 압축 품질을 90으로 설정했으므로, 해당 크기로 재압축되기를 기대했습니다(90 품질과 1920픽셀로 1.2MB 제한 내에서 쉽게 압축할 수 있는 이미지로 테스트했습니다).
하지만 시스템은 여전히 이미지를 과도하게 압축하고 있습니다.

최대 이미지 크기, 너비 및 높이에 대한 사이트 설정을 수정해 보셨나요? 그것이 첫 번째 확인 대상이 되어야 합니다.

지연된 답변에 죄송합니다. 답변을 놓치고 있었습니다.

이전에 설명드린 바와 같이, 우리는 1.2MB의 용량 제한과 4MP의 해상도 제한을 설정했습니다.

이미지가 이 제한을 충족하지 못할 경우, 시스템은 이를 강하게 압축합니다. 1920px 또는 2048px 폭으로 업로드된 이미지가 600px 또는 1000px 폭으로 줄어드는 등 극단적인 결과가 나오는 경우도 있습니다.

숙련된 눈에는 품질 저하가 명백하게 드러납니다: 텍스처 누락, 할로 현상, 부적절한 색 보정 등입니다.

최근 업데이트 이후에는 제한을 충족하는 이미지조차도 시스템의 ‘개선’ 과정에 의해 압축되어 품질이 손실되는 문제가 발생하고 있습니다.

우리는 '원본 JPG 재압축 품질’을 조정하여 재압축을 방지하고자 100%로 설정했습니다. 효과가 있는 것으로 보이지만, 여전히 재압축이 이루어지는지는 확신할 수 없습니다(하지만 적어도 눈에 띄는 품질 저하가 없다는 점은 확인되었습니다).

해당 크기 이하의 이미지에 대한 클라이언트 크기 최적화를 비활성화하려면 composer media optimization image bytes optimization threshold를 조정해야 합니다. 기본값은 500Kb 이상의 이미지에 적용되므로, 해당 설정을 1.2MB로 늘려야 합니다.

이 사이트 설정의 설명을 개선해서 동작 방식을 더 명확하게 이해할 수 있도록 해야 할까요? :thinking:

그렇게 생각하는데, 카피라이팅은 내 강점이 아니에요.

현재는 다음과 같습니다.

클라이언트 측 최적화를 트리거하는 최소 이미지 파일 크기

아마도

업로드 전 리사이즈/압축을 트리거하는 최소 이미지 파일 크기

가 더 나을까요?

아마도

이 크기보다 큰 이미지는 클라이언트에 의해 리사이즈되고 압축됩니다