jpegoptim을 사용하여 파일 크기를 20kb로 만들려면 어떻게 해야 합니까?

jpegoptim을 사용하여 파일 크기를 20kb로 만들려면 어떻게 해야 합니까?

jpegoptim을 사용해 보았고 맨페이지도 시도해 보았지만 혼란스럽습니다. 데이터 품질을 낮추기 위해 50k로 줄이거나 열어보고 싶은 파일입니다 -

Image:
  Filename: shirish.jpg
  Format: JPEG (Joint Photographic Experts Group JFIF format)
  Mime type: image/jpeg
  Class: DirectClass
  Geometry: 4624x3468+0+0
  Resolution: 72x72
  Print size: 64.2222x48.1667
  Units: PixelsPerInch
  Colorspace: sRGB
  Type: TrueColor
  Base type: Undefined
  Endianness: Undefined
  Depth: 8-bit
  Channel depth:
    red: 8-bit
    green: 8-bit
    blue: 8-bit
  Channel statistics:
    Pixels: 16036032
    Red:
      min: 0  (0)
      max: 255 (1)
      mean: 119.779 (0.46972)
      standard deviation: 60.359 (0.236702)
      kurtosis: -1.33094
      skewness: -0.2895
      entropy: 0.920909
    Green:
      min: 0  (0)
      max: 255 (1)
      mean: 115.071 (0.45126)
      standard deviation: 63.5402 (0.249177)
      kurtosis: -1.51367
      skewness: -0.162973
      entropy: 0.912909
    Blue:
      min: 0  (0)
      max: 255 (1)
      mean: 114.566 (0.449277)
      standard deviation: 61.8685 (0.242621)
      kurtosis: -1.51015
      skewness: -0.101152
      entropy: 0.912805
  Image statistics:
    Overall:
      min: 0  (0)
      max: 255 (1)
      mean: 116.472 (0.456752)
      standard deviation: 61.9226 (0.242834)
      kurtosis: -1.46062
      skewness: -0.184944
      entropy: 0.915541
  Rendering intent: Perceptual
  Gamma: 0.454545
  Chromaticity:
    red primary: (0.64,0.33)
    green primary: (0.3,0.6)
    blue primary: (0.15,0.06)
    white point: (0.3127,0.329)
  Background color: white
  Border color: srgb(223,223,223)
  Matte color: grey74
  Transparent color: black
  Interlace: None
  Intensity: Undefined
  Compose: Over
  Page geometry: 4624x3468+0+0
  Dispose: Undefined
  Iterations: 0
  Compression: JPEG
  Quality: 92
  Orientation: RightTop
  Profiles:
    Profile-app4: 7600 bytes
    Profile-exif: 51509 bytes
  Properties:
    date:create: 2022-08-20T05:27:53+00:00
    date:modify: 2022-08-20T05:27:53+00:00
    exif:ApertureValue: 169/100
    exif:BrightnessValue: 264/100
    exif:ColorSpace: 1
    exif:DateTime: 2022:08:20 10:53:10
    exif:DateTimeDigitized: 2022:08:20 10:53:10
    exif:DateTimeOriginal: 2022:08:20 10:53:10
    exif:DigitalZoomRatio: 100/100
    exif:ExifOffset: 226
    exif:ExifVersion: 48, 50, 50, 48
    exif:ExposureMode: 0
    exif:ExposureProgram: 2
    exif:ExposureTime: 1/50
    exif:Flash: 0
    exif:FNumber: 180/100
    exif:FocalLength: 532/100
    exif:FocalLengthIn35mmFilm: 28
    exif:ImageLength: 3468
    exif:ImageUniqueID: I64ELODR0PM
    exif:ImageWidth: 4624
    exif:Make: samsung
    exif:MaxApertureValue: 169/100
    exif:MeteringMode: 2
    exif:Model: SM-M526B
    exif:OffsetTime: +05:30
    exif:OffsetTimeOriginal: +05:30
    exif:PhotographicSensitivity: 160
    exif:PixelXDimension: 4624
    exif:PixelYDimension: 3468
    exif:SceneCaptureType: 0
    exif:ShutterSpeedValue: 1/50
    exif:Software: M526BXXU1BVG4
    exif:thumbnail:Compression: 6
    exif:thumbnail:ImageLength: 384
    exif:thumbnail:ImageWidth: 512
    exif:thumbnail:JPEGInterchangeFormat: 782
    exif:thumbnail:JPEGInterchangeFormatLength: 50721
    exif:thumbnail:ResolutionUnit: 2
    exif:thumbnail:XResolution: 72/1
    exif:thumbnail:YResolution: 72/1
    exif:WhiteBalance: 0
    exif:YCbCrPositioning: 1
    jpeg:colorspace: 2
    jpeg:sampling-factor: 2x2,1x1,1x1
    signature: 7841c1e0cbe1aa5b79f0dea6791ffd321e2cf05715a9ab3cd210fd551c9bf355
  Artifacts:
    filename: shirish.jpg
    verbose: true
  Tainted: False
  Filesize: 3.65599MiB
  Number pixels: 16.036M
  Pixels per second: 126.41MB
  User time: 0.120u
  Elapsed time: 0:01.126
  Version: ImageMagick 6.9.11-60 Q16 x86_64 2021-01-25 https://imagemagick.org

이제 imagemagick Convert와 jpegoptim을 사용해 약 50,000개의 파일을 얻었습니다. 파일을 어딘가에 올려야하고 크기 제한이 있기 때문에 그 크기로 파일이 필요합니다.

imagemagick의 recognition -verbose 스위치를 사용하여 위의 EXIF ​​및 사진 데이터를 얻었습니다.

누구든지 위의 문제를 해결하도록 도와줄 수 있나요?

나는 다음을 시도했습니다 -

$jpegoptim --size=50k shirish.jpg

50kb 대신 내가 얻은 파일은 200kb였습니다. 나쁘지는 않지만 내가 원하는 것은 아닙니다 :(

시도해 보기도 했어요 -

$jpegoptim --max=10 --size=50k shirish-aadhar-2-reduced.jpg

그러나 이마저도 기대했던 결과를 얻지 못했습니다.

$ jpegoptim --version
jpegoptim v1.4.7  x86_64-pc-linux-gnu (Jun 20 2022)
Copyright (C) 1996-2022, Timo Kokkonen

This program comes with ABSOLUTELY NO WARRANTY. This is free software,
and you are welcome to redistirbute it under certain conditions.
See the GNU General Public License for more details.


libjpeg version: 6b  27-Mar-1998
Copyright (C) 1991-2021 The libjpeg-turbo Project and many others

도움을 기다리겠습니다. 동일한 작업을 수행하기 위해 일부 온라인 도구를 사용할 수 있다는 것을 알고 있지만 오프라인에서도 사용할 수 있기를 원합니다.

답변1

ImageMagick을 사용하여 모든 메타데이터를 제거하고 품질을 낮출 수 있습니다. 확인하다이 답변자세한 내용은:

85 프로그레시브 품질
(압축 압축)
이미지의 품질과 크기에 따라 최적화된 크기(반경 0.05 또는 0.5)의 매우 작은 가우스 블러로,
JPEG 크기를 크게 최적화합니다.
댓글이나 EXIF ​​​​메타데이터를 삭제하세요

imagemagick에서는 그래야합니다.

convert -strip -interlace Plane -gaussian-blur 0.05 -quality 85% source.jpg result.jpg

또는 새 버전에서는:

magick source.jpg -strip -interlace Plane -gaussian-blur 0.05 -quality 85% result.jpg

숫자를 가지고 놀 수 있습니다 -quality. 그러나 16MP 이미지를 50k로 압축하면 결과가 덜 만족스럽습니다.

답변2

형식이 jpg인 경우 최대 파일 크기를 정의할 수 있습니다.

convert shirish.jpg -define jpeg:extent=20k shirish-20k.jpg

이렇게 하면 이미지 품질이 크게 저하될 것이 거의 확실합니다.

그러나 알만한 가치가 있습니다.

설명 링크

관련 정보