Libvips: Vips CLIλŠ” νŒŒμ΄ν”„λ‘œ 파일 ν˜•μ‹ 지정

에 λ§Œλ“  2016λ…„ 05μ›” 06일  Β·  4μ½”λ©˜νŠΈ  Β·  좜처: libvips/libvips

imagemagickμ—μ„œ νŒŒμ΄ν”„μ—μ„œ 읽고 μ“Έ 수 있으며 ν˜•μ‹μ„ 지정할 수 μžˆμŠ΅λ‹ˆλ‹€.

cat in.jpg | convert JPG:- -resize 50% PPM:- | jpeg-recompress --ppm -q medium - out.jpg

vips cli λ„κ΅¬μ—μ„œ /dev/stdin λ˜λŠ” /dev/stdout을 μ‚¬μš©ν•  수 μžˆμ§€λ§Œ vipsμ—μ„œ νŒŒμ΄ν”„λ₯Ό μ‚¬μš©ν•˜μ—¬ μˆ˜ν–‰ν•  수 μžˆλŠ” μž‘μ—…μ„ μ œν•œν•˜λŠ” 파일 ν˜•μ‹μ„ λ‚˜νƒ€λ‚΄λŠ” 방법이 μ—†λŠ” 것 κ°™μŠ΅λ‹ˆλ‹€.

VIPκ°€ μž…λ ₯ 및 좜λ ₯ 이미지에 λŒ€ν•΄ λ‘œλ”/세이버λ₯Ό 지정/μž¬μ •μ˜ν•  수 μžˆλ‹€λ©΄ 쒋을 κ²ƒμž…λ‹ˆλ‹€.

ꡬ문 예:

cat in.jpg | vips resize -[load=jpeg] -[save=ppm] 0.5 | jpeg-recompress --ppm -q medium - out.jpg

이것은 λ˜ν•œ .v νŒŒμΌμ— μ“°κΈ° μœ„ν•΄ λ””μŠ€ν¬ i/oλ₯Ό μ§€λΆˆν•˜μ§€ μ•Šκ³  μ—¬λŸ¬ vips cli μž‘μ—…μ„ μ—°κ²°ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

enhancement

κ°€μž₯ μœ μš©ν•œ λŒ“κΈ€

이것은 8.9에 μΆ”κ°€λ˜μ—ˆμŠ΅λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄ μ“Έ 수 μžˆμŠ΅λ‹ˆλ‹€.

aws s3 cp s3://mybucket/input.jpg - | \
  vips thumbnail_source [descriptor=0] .jpg 128 | \
    aws s3 cp - s3://mybucket/output.jpg

릴리슀 μ •λ³΄μ—λŠ” λ‹€μŒκ³Ό 같은 μΆ”κ°€ 정보가 μžˆμŠ΅λ‹ˆλ‹€.

https://libvips.github.io/libvips/2019/12/11/What 's-new-in-8.9.html

λͺ¨λ“  4 λŒ“κΈ€

Hi Felix, 이것에 λŒ€ν•΄ 쑰금 μ΄μ•ΌκΈ°ν–ˆμŠ΅λ‹ˆλ‹€. μŠ€νŠΈλ¦Όμ„ μ§€μ›ν•˜λŠ” μ‹€ν—˜μ μΈ 뢄기도 μžˆμŠ΅λ‹ˆλ‹€.

https://github.com/jcupitt/libvips/tree/load-from-stream

이 C ν”„λ‘œκ·Έλž¨μ„ μ‹€ν–‰ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

https://gist.github.com/jcupitt/ff21f5b8d1dd6ba54c6f

전체 이미지λ₯Ό λ‘œλ“œν•  ν•„μš” 없이 μ†ŒμΌ“μ—μ„œ 일련의 이미지λ₯Ό 읽고 μ²˜λ¦¬ν•œ λ‹€μŒ λ‹€λ₯Έ μ†ŒμΌ“μœΌλ‘œ λ³΄λƒ…λ‹ˆλ‹€. λͺ©ν‘œλŠ” AWS 버킷을 μ§€μ›ν•˜λŠ” κ²ƒμ΄μ§€λ§Œ μ•½κ°„μ˜ μΆ”κ°€ μž‘μ—…μœΌλ‘œ λͺ…령쀄 νŒŒμ΄ν”„μ—μ„œλ„ μž‘λ™ν•©λ‹ˆλ‹€.

이 λ¬Έμ œμ— λŒ€ν•΄ κΈ΄ λŒ€ν™”κ°€ μžˆμ—ˆμŠ΅λ‹ˆλ‹€.

https://github.com/lovell/sharp/issues/30

λ‚˜λŠ” μž μ‹œ ν¬κΈ°ν–ˆλ‹€κ°€ λΉ„νŠΈλ‘œνŠΈ(bitrotted)ν•œ λ‹€μŒ λ§ˆμŠ€ν„°μ— 병합할 μ€€λΉ„λ₯Ό ν•˜κ³  일뢀 문제λ₯Ό ν•΄κ²°ν•˜λ €κ³  ν–ˆμŠ΅λ‹ˆλ‹€. 아직 쑰금 더 μž‘μ—…μ΄ ν•„μš”ν•©λ‹ˆλ‹€ :/

μ—¬λŸ¬ 이미지λ₯Ό μŠ€νŠΈλ¦¬λ°ν•˜λŠ” 것에 λŒ€ν•΄ μ΄μ•ΌκΈ°ν•œ 것은 μ•„λ‹ˆμ§€λ§Œ 멋진 κΈ°λŠ₯이 될 κ²ƒμž…λ‹ˆλ‹€.

μ£Όμš” μ•„μ΄λ””μ–΄λŠ” 파일 ν™•μž₯μžμ—μ„œ μœ μΆ”ν•  수 μ—†λŠ” 경우 λ‘œλ” λ˜λŠ” 세이버(λ˜λŠ” λŒ€λž΅ 파일 ν˜•μ‹)λ₯Ό μ„€μ •ν•  수 μžˆλ‹€λŠ” κ²ƒμž…λ‹ˆλ‹€. 검색이 ν•„μš”ν•œ 파일 ν˜•μ‹μ— λŒ€ν•΄ 더 λ§Žμ€ λ¬Έμ œκ°€ μžˆλ‹€κ³  ν™•μ‹ ν•˜μ§€λ§Œ 예λ₯Ό λ“€λ©΄ λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€. jpeg, png, ppm은 잘 μž‘λ™ν•©λ‹ˆλ‹€. μ΄λŠ” λ™μΌν•œ 파일 ν˜•μ‹μ„ λ‚΄λ³΄λ‚΄κ±°λ‚˜ λ‘œλ“œν•  수 μžˆλŠ” μ—¬λŸ¬ κ΅¬ν˜„μ΄ μžˆλŠ” κ²½μš°μ—λ„ μœ μš©ν•©λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄ PDFλŠ” pdfload λ˜λŠ” magickload둜 λ‘œλ“œν•  수 μžˆμŠ΅λ‹ˆλ‹€.

/dev/stdin이 μž‘λ™ν•˜λ €λ©΄ 슀트리밍 ν•­λͺ©μ΄ ν•„μš”ν•˜λ‹€κ³  μƒκ°ν•©λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄ λ‹€μŒμ€ μ‹€νŒ¨ν•©λ‹ˆλ‹€.

$ cat k2.jpg | vips jpegload /dev/stdin x.jpg
VipsJpeg: Not a JPEG file: starts with 0x87 0xe5
...

파일 λ‘œλ”λŠ” μž…λ ₯을 μ—¬λŸ¬ 번 μ—΄ 수 μžˆμ„ κ²ƒμœΌλ‘œ μ˜ˆμƒν•©λ‹ˆλ‹€. 슀트리밍 ν•­λͺ©μ€ 이λ₯Ό κ°€λŠ₯ν•˜κ²Œ ν•˜λŠ” 읽기 버퍼λ₯Ό μΆ”κ°€ν•©λ‹ˆλ‹€. 슀트림 ν•­λͺ©μ˜ λ§Žμ€ μ΄λ―Έμ§€λŠ” λ³΄λ„ˆμŠ€μΌ λΏμž…λ‹ˆλ‹€.

이것은 8.9에 μΆ”κ°€λ˜μ—ˆμŠ΅λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄ μ“Έ 수 μžˆμŠ΅λ‹ˆλ‹€.

aws s3 cp s3://mybucket/input.jpg - | \
  vips thumbnail_source [descriptor=0] .jpg 128 | \
    aws s3 cp - s3://mybucket/output.jpg

릴리슀 μ •λ³΄μ—λŠ” λ‹€μŒκ³Ό 같은 μΆ”κ°€ 정보가 μžˆμŠ΅λ‹ˆλ‹€.

https://libvips.github.io/libvips/2019/12/11/What 's-new-in-8.9.html

이 νŽ˜μ΄μ§€κ°€ 도움이 λ˜μ—ˆλ‚˜μš”?
0 / 5 - 0 λ“±κΈ‰