Libvips: рд╡реАрдЖрдИрдкреА рд╕реАрдПрд▓рдЖрдИ рдкрд╛рдЗрдк рдХреЗ рд╕рд╛рде рдлрд╝рд╛рдЗрд▓ рд╕реНрд╡рд░реВрдк рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддрд╛ рд╣реИ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 6 рдордИ 2016  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: libvips/libvips

рдЗрдореЗрдЬрдореИрдЬрд┐рдХ рдореЗрдВ рдореИрдВ рдкрд╛рдЗрдк рд╕реЗ рдкрдврд╝ рдФрд░ рд▓рд┐рдЦ рд╕рдХрддрд╛ рд╣реВрдВ рдФрд░ рдЙрдирдХрд╛ рдкреНрд░рд╛рд░реВрдк рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ:

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

vips cli рдЯреВрд▓реНрд╕ рдореЗрдВ рдореИрдВ/dev/stdin рдпрд╛/dev/stdout рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдлрд╝рд╛рдЗрд▓ рдкреНрд░рд╛рд░реВрдк рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рдкреНрд░рддреАрдд рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ, рдЬреЛ рдХрд┐ рдЖрдк vips рдореЗрдВ рдкрд╛рдЗрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд┐рддрдирд╛ рдкреВрд░рд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдпрд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рд╡реАрдЖрдИрдкреА рдХреЛ рдЗрдирдкреБрдЯ рдФрд░ рдЖрдЙрдЯрдкреБрдЯ рдЫрд╡рд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рд▓реЛрдбрд░/рд╕реЗрд╡рд░ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ/рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреА рдЬрд╛рдПред

рдЙрджрд╛рд╣рд░рдг рд╡рд╛рдХреНрдп рд░рдЪрдирд╛:

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

рдпрд╣ .v рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рд╕реНрдХ i/o рдХрд╛ рднреБрдЧрддрд╛рди рдХрд┐рдП рдмрд┐рдирд╛ рдХрдИ vips cli рд╕рдВрдЪрд╛рд▓рди рдХреЛ рд╢реНрд░реГрдВрдЦрд▓рд╛рдмрджреНрдз рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рднреА рджреЗрдЧрд╛ред

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдЗрд╕реЗ 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 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рд╣рд╛рдп рдлреЗрд▓рд┐рдХреНрд╕, рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдереЛрдбрд╝реА рдмрд╛рдд рдХреА рдЧрдИ рд╣реИ, рдпрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрдХрд┐ рдзрд╛рд░рд╛рдУрдВ рдХреЗ рд╕рдорд░реНрдерди рдХреЗ рд╕рд╛рде рдПрдХ рдкреНрд░рдпреЛрдЧрд╛рддреНрдордХ рд╢рд╛рдЦрд╛ рднреА рд╣реИ:

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

рдпрд╣ рдЗрд╕ рд╕реА рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЛ рдЪрд▓рд╛ рд╕рдХрддрд╛ рд╣реИ:

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

рдпрд╣ рдПрдХ рд╕реЙрдХреЗрдЯ рд╕реЗ рдЫрд╡рд┐рдпреЛрдВ рдХреА рдПрдХ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреЛ рдкрдврд╝рддрд╛ рд╣реИ, рдЙрдиреНрд╣реЗрдВ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдЙрдиреНрд╣реЗрдВ рдкреВрд░реА рдЫрд╡рд┐ рд▓реЛрдб рдХрд┐рдП рдмрд┐рдирд╛ рдХрд┐рд╕реА рдЕрдиреНрдп рд╕реЙрдХреЗрдЯ рдореЗрдВ рднреЗрдЬрддрд╛ рд╣реИред рдЗрд╕рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп AWS рдмрдХреЗрдЯ рдХреЛ рд╕рдкреЛрд░реНрдЯ рдХрд░рдирд╛ рдерд╛, рд▓реЗрдХрд┐рди рдпрд╣ рдХрдорд╛рдВрдб-рд▓рд╛рдЗрди рдкрд╛рдЗрдкреНрд╕ рдХреЗ рд▓рд┐рдП рднреА рдХрд╛рдо рдХрд░реЗрдЧрд╛, рдЬрд┐рд╕рдореЗрдВ рдереЛрдбрд╝реА рдорд╛рддреНрд░рд╛ рдореЗрдВ рдЕрддрд┐рд░рд┐рдХреНрдд рдХрд╛рдо рд╣реЛрдЧрд╛ред

рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рд▓рдВрдмреА рдмрд╛рддрдЪреАрдд рд╣реБрдИ:

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

рдореИрдВрдиреЗ рдереЛрдбрд╝реА рджреЗрд░ рдХреЗ рд▓рд┐рдП рд╣рд╛рд░ рдорд╛рди рд▓реА, рдлрд┐рд░ рдпрд╣ рдмрд┐рдЯрд░реЛрдЯ рд╣реЛ рдЧрдпрд╛, рдлрд┐рд░ рдореИрдВрдиреЗ рдЗрд╕реЗ рдорд╛рд╕реНрдЯрд░ рдореЗрдВ рд╡рд┐рд▓рдп рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рдФрд░ рдХреБрдЫ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рдорд╛рд░рд╛ред рдЗрд╕реЗ рдЕрднреА рднреА рдереЛрдбрд╝рд╛ рдФрд░ рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рд╣реИ: /

рдореИрдВ рдПрдХрд╛рдзрд┐рдХ рдЫрд╡рд┐рдпреЛрдВ рдХреЛ рд╕реНрдЯреНрд░реАрдо рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рдерд╛, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рдПрдХ рдЕрдЪреНрдЫреА рд╕реБрд╡рд┐рдзрд╛ рд╣реЛрдЧреАред

рдореБрдЦреНрдп рд╡рд┐рдЪрд╛рд░ рд▓реЛрдбрд░ рдпрд╛ рд╕реЗрд╡рд░ (рдпрд╛ рдореЛрдЯреЗ рддреМрд░ рдкрд░ рдлрд╝рд╛рдЗрд▓ рдкреНрд░рдХрд╛рд░) рдХреЛ рд╕реЗрдЯ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рд╣реИ, рдЬрдм рдЗрд╕реЗ рдлрд╝рд╛рдЗрд▓ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рд╕реЗ рдЕрдиреБрдорд╛рди рдирд╣реАрдВ рд▓рдЧрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдореБрдЭреЗ рдпрдХреАрди рд╣реИ рдХрд┐ рдлрд╝рд╛рдЗрд▓ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдФрд░ рднреА рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣реИрдВ рдЬрд┐рдирдХреЗ рд▓рд┐рдП рдорд╛рдВрдЧ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдПред рдЬреЗрдкреАрдИрдЬреА, рдкреАрдПрдирдЬреА, рдкреАрдкреАрдПрдо рдареАрдХ рдХрд╛рдо рдХрд░реЗрдЧрд╛ред рдпрд╣ рддрдм рднреА рдорджрджрдЧрд╛рд░ рд╣реЛрдЧрд╛, рдЬрдм рдХрдИ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реИрдВ рдЬреЛ рдПрдХ рд╣реА рдлрд╝рд╛рдЗрд▓ рдкреНрд░рдХрд╛рд░ рдХреЛ рдЙрддреНрд╕рд░реНрдЬрд┐рдд рдпрд╛ рд▓реЛрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП 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 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

AKlein920 picture AKlein920  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

sonylifull picture sonylifull  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

Kyle-Kyle picture Kyle-Kyle  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

harukizaemon picture harukizaemon  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

solisoft picture solisoft  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ