문제

큰 사진에서 썸네일과 중간 크기의 이미지를 생성해야 합니다.이 작은 사진은 온라인 갤러리에 표시됩니다.많은 사진가들이 Adobe RGB를 사용하여 JPEG 이미지를 제출하고 있습니다.모든 썸네일과 중간 크기 이미지에 sRGB를 사용하고 싶습니다.

저는 dotnet(asp.net)을 사용하고 있으며 품질 저하 없이 Adobe RGB에서 sRGB로 변환하는 방법이 필요합니다.

도움이 되었습니까?

해결책

배경 정보:Jpg 파일에는 sRGB, Adobe RGB 또는 일반 RGB 등 8비트의 빨간색, 녹색, 파란색이 있습니다.ICC 설명자는 색상 공간을 결정합니다.때때로 이것은 jpg 파일에 포함됩니다.sRGB, Exif Colorspace 태그 a001 = 1을 지정하는 플래그가 있는 경우도 있습니다.Adobe RGB에 대한 표준 플래그는 없지만 일부 응용 프로그램과 카메라는 EXIF ​​태그 A001에서 Adobe RGB에 65535(보정되지 않음)를 사용합니다.

하나의 ICC 프로필(색상 공간)에서 다른 ICC 프로필로 jpg 파일을 변환하려면 CreateColorTransform을 사용하여 색상 공간 간에 변환을 생성할 수 있습니다.소스(Adobe RGB) 및 대상(sRGB) 색상 공간에 대한 ICC 프로파일을 제공해야 합니다.

변환이 완료되면 TranslateBitmapBits를 사용하여 픽셀을 조정합니다.이미지를 DIBSection으로 작업하는 것이 더 쉬울 수 있습니다.

.asp로 작성하는 것은 다소 복잡할 수 있으므로 이 작업을 수행하는 그래픽 라이브러리를 사용하는 것이 더 쉬울 수 있습니다.

다른 팁

imagemagic을 사용해야합니다 -프로필 옵션, -Colorspace 옵션이 도움이되지 않을 것이라고 생각합니다.

convert image.jpg -profile sRGB.icc rgb_image.jpg

또는 당신은 찾을 수 있습니다 작은 색상 관리 엔진

살펴보십시오 비트 맵 변환 클래스 프로필과 함께 ColorConvertedBitMap 클래스를 사용하는 짧은 샘플이 있습니다.

서버 측에서는 Imagemagick에 전화를 걸어 전환을 할 수 있습니다.

다음은 -colorspace 명령 줄 옵션에 대한 링크입니다.

나는이 특정 옵션을 사용하지 않았지만 당신이 원하는 것을하는 것 같습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top