김프와 함께 JPG 파일을 저장하면 0-100에서 저장 한 품질을 조정할 수 있습니다 (89 사용). 이 숫자가 저장된 파일에 무엇인지 알기 위해 앱을 사용했던 것 같습니다.하지만 내가 할 경우 내 인생에서 그것이 무엇인지 알아낼 수 없습니다. 무엇을 사용해야하는지에 대한 제안이 있으십니까?
김프와 함께 JPG 파일을 저장하면 0-100에서 저장 한 품질을 조정할 수 있습니다 (89 사용). 이 숫자가 저장된 파일에 무엇인지 알기 위해 앱을 사용했던 것 같습니다.하지만 내가 할 경우 내 인생에서 그것이 무엇인지 알아낼 수 없습니다. 무엇을 사용해야하는지에 대한 제안이 있으십니까?
답변:
일단 저장되면 더 이상 품질을 알 수 없습니다.
(저장하는 동안 품질을 설정하면 소프트웨어에 허용 가능한 손실이 얼마나되는지 알려 주지만 일단 저장되면 손실 된 내용이 손실됩니다.
흠, 내가 틀렸다고 생각한다. 난 아직도 위가 올바른 생각하지만 ImageMagick이 의는 identify
잘못 나를 증명한다?
식별 -verbose myimage.jpg 이미지 : myimage.jpg 형식 : JPEG (Joint Photographic Experts Group JFIF 형식) 클래스 : DirectClass 형상 : 358x240 + 0 + 0 해결 : 300x300 [...] 압축 : JPEG 품질 : 90 오리엔테이션 : 정의되지 않음 [...]
테스트에서 이미지가 어떻게 저장되었는지 모르지만 EXIF 데이터가 없습니다. 이미지에 여전히 품질을 저장할 수 있습니까?
Arjan의 답변에 추가하려면 다음을 수행하십시오.
ImageMagick identify
은 JPEG 이미지 내부를 실제로 보면서 인코딩에 사용 된 품질 설정을 추측합니다.
ImageMagick의 소스 코드 (무료 소프트웨어를위한 응원) :
/*
Determine the JPEG compression quality from the quantization tables.
*/
sum=0;
for (i=0; i < NUM_QUANT_TBLS; i++)
{
if (jpeg_info.quant_tbl_ptrs[i] != NULL)
for (j=0; j < DCTSIZE2; j++)
sum+=jpeg_info.quant_tbl_ptrs[i]->quantval[j];
( coders/jpeg.c
최근 버전의 ImageMagick 소스 코드에서 843ff.).
JPEG에 대해 실제로 이해하기에 충분하지 않지만이 기사에서 설명하는 것과 같은 것으로 보입니다.
Visual C # .NET을 사용하여 JPEG 품질 요소 결정 (2018 년 1 월부터 링크 가 끊어짐, 2015 년의 archive.org에서 복사 )
따라서 identify
실제로 압축 파일만으로 JPEG의 품질 설정을 결정할 수 있습니다 (결과가 항상 정확한 것은 아님).
Arjan metioned identify -verbose myimage.jpg
가 그렇게 할 것입니다. imagemagick은 CLI 도구이므로 스크립팅에 유용 할 수 있습니다. 접근 방식 identify -verbose myimage.jpg | grep ...
이 느립니다. 이런 식으로 IM을 사용하는 것이 좋습니다
identify -format '%Q' myimage.jpg
엄청 빠릅니다.
ImageMagick ++ 라이브러리를 사용하면 다음과 같이 쉽습니다.
Image magick_image( pathname );
size_t compressionFactor = magick_image.quality(); // 0..100