Libvips: 'auto_rotate'κ°€ μ˜ˆμƒλŒ€λ‘œ μž‘λ™ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. 처리된 이미지가 잘λͺ» νšŒμ „λ˜μ—ˆμŠ΅λ‹ˆλ‹€.

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

ꡬ체적으둜 S9+ 찍은 이미지λ₯Ό μ²˜λ¦¬ν•˜λ €κ³  ν•©λ‹ˆλ‹€. μ΄λ―Έμ§€λŠ” Windowsμ—μ„œ μ •μƒμ μœΌλ‘œ λ³΄μž…λ‹ˆλ‹€. ν•΄λ‹Ή 이미지λ₯Ό Linux( Debian )둜 μ „μ†‘ν•˜κ³  ruby λ₯Ό 톡해 μ²˜λ¦¬ν•©λ‹ˆλ‹€. 좜λ ₯은 항상 90도 νšŒμ „λ©λ‹ˆλ‹€. μž…λ ₯κ³Ό λ™μΌν•˜κ²Œ μ˜¬λ°”λ₯΄κ²Œ νšŒμ „ν•΄μ•Ό ν•©λ‹ˆλ‹€. :autorotate ν‚€κ°€ 도움이 λ˜μ§€ μ•Šμ•˜μŠ΅λ‹ˆλ‹€.

μƒ˜ν”Œ 이미지: 20190519_225024.zip

_μƒ˜ν”Œμ—λŠ” μ„Έλ‘œλ‘œ USB μŠ€ν‹±μ΄ μžˆμŠ΅λ‹ˆλ‹€. 좜λ ₯은 항상 μˆ˜ν‰μž…λ‹ˆλ‹€ ._

https://github.com/janko/image_processing/issues/52μ—μ„œ 토둠을 μ°Έμ‘°ν•˜μ‹­μ‹œμ˜€.

κ·ΈλŸ¬λ‚˜ libvips 8.6.4λ₯Ό μ‚¬μš©ν•˜μ—¬ Windowsμ—μ„œ λ™μΌν•œ 슀크립트λ₯Ό μ‹€ν–‰ν–ˆλŠ”λ° 좜λ ₯이 μ •ν™•ν•©λ‹ˆλ‹€. λ‚˜λŠ” μ •ν™•ν•œ νšŒμ „μ„ μ–»λŠ”λ‹€. μž…λ ₯κ³Ό 동일.

λ§ˆμ§€λ§‰ ν…ŒμŠ€νŠΈλ„ ν•΄λ΄€μŠ΅λ‹ˆλ‹€. Linuxμ—μ„œ 슀크립트λ₯Ό μ‹€ν–‰ν•œ λ‹€μŒ 좜λ ₯ νŒŒμΌμ„ Windows에 λ³΅μ‚¬ν–ˆλŠ”λ° 잘λͺ» νšŒμ „λœ 것을 μ•Œ 수 μžˆμŠ΅λ‹ˆλ‹€.

Linux μ„œλ²„μ—λŠ” libvips 8.7.4 μžˆμŠ΅λ‹ˆλ‹€. μ΅œκ·Όμ— 8.8.0-rc3 도 μ„€μΉ˜ν–ˆμŠ΅λ‹ˆλ‹€. λ‘˜ λ‹€ 같은 λ™μž‘μ„ ν•©λ‹ˆλ‹€.

λ˜ν•œ @janko λŠ” Macμ—μ„œλ„ μž‘λ™ν•˜λŠ”μ§€ ν™•μΈν•©λ‹ˆλ‹€.

무엇이 문제일 수 μžˆμŠ΅λ‹ˆκΉŒ?

_λ‚˜λŠ” 이전에 Golangμ—μ„œ 깨어났고 (μ²¨λΆ€λœ 이미지와 같은) κ·ΈλŸ¬ν•œ 이미지λ₯Ό μ—…λ‘œλ“œν•˜κ³  μ²˜λ¦¬ν•  λ•Œ 항상 :autorotate μ˜¬λ°”λ₯Έ κ²°κ³Όλ₯Ό μ–»μŠ΅λ‹ˆλ‹€. ν•˜μ§€λ§Œ μ΄λ²ˆμ—λŠ” ruby_κ°€ μ•„λ‹™λ‹ˆλ‹€.

슀크립트 :

require "vips"

file_path = "./20190518_094223.jpeg"

Vips::Image
  .new_from_file(file_path, autorotate: true)
  .write_to_file("autorotated_1.png")

Vips::Image
  .new_from_file(file_path)
  .autorot
  .write_to_file("autorotated_2.png")

Vips::Image
  .jpegload(file_path, autorotate: true)
  .write_to_file("autorotated_3.png")

Vips::Image
  .thumbnail(file_path, size, height: size)
  .write_to_file("autorotated_4.png")

Vips::Image
  .thumbnail(file_path, size, height: size, auto_rotate: true)
  .write_to_file("autorotated_5.png")

μ—…λ°μ΄νŠΈ:

mspaint 이미지λ₯Ό μ—΄κ³  λ¬΄μž‘μœ„λ‘œ 선을 κ·Έλ¦½λ‹ˆλ‹€. μ €μž₯ν–ˆμŠ΅λ‹ˆλ‹€. 그런 λ‹€μŒ μœ„μ˜ 슀크립트둜 처리되고 좜λ ₯이 μ •ν™•ν•©λ‹ˆλ‹€ . 이것은 정말 μ΄μƒν•©λ‹ˆλ‹€.

question

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

λ‚˜λŠ” λ‹Ήμ‹ μ˜ λŒ€λ‹΅μ„λ³΄κ³  λ‚˜ μžμ‹ μ—κ²Œ μ›ƒμŒμ„ 멈좜 수 μ—†μŠ΅λ‹ˆλ‹€. λ‚΄κ°€ κ·Έκ±Έ μ–΄λ–»κ²Œ 놓쳀어!

예, libexif-dev 이 컴퓨터에 μ„€μΉ˜λ˜μ–΄ μžˆμ§€ μ•ŠμŠ΅λ‹ˆλ‹€...

libexif-dev 둜 λ‹€μ‹œ λΉŒλ“œν•˜μ—¬ λ¬Έμ œκ°€ ν•΄κ²°λ˜μ—ˆμŠ΅λ‹ˆλ‹€.

(진심 πŸ˜’ λ‚΄κ°€ κ·Έκ±Έ μ–΄λ–»κ²Œ 놓쳀지)

κ°μ‚¬ν•©λ‹ˆλ‹€!

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

μ•ˆλ…•ν•˜μ„Έμš” @gencer μž…λ‹ˆλ‹€ .

μΆ”μΈ‘μ΄μ§€λ§Œ λ°λΉ„μ•ˆμ˜ libvipsκ°€ libexif 없이 ꡬ좕될 수 μžˆμŠ΅λ‹ˆκΉŒ?

exif 지원이 μ—†μœΌλ©΄ libvipsλŠ” μ΄λ―Έμ§€μ˜ λ°©ν–₯ νƒœκ·Έλ₯Ό λ³Ό 수 μ—†μœΌλ©° νšŒμ „ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

ν…ŒμŠ€νŠΈν•˜λ €λ©΄ λͺ…λ Ήμ€„μ—μ„œ λ°©ν–₯ νƒœκ·Έλ₯Ό μ½μ–΄λ³΄μ‹­μ‹œμ˜€.

$ vipsheader -f orientation ~/pics/Portrait_6.jpg 
6

λ‚˜λŠ” λ‹Ήμ‹ μ˜ λŒ€λ‹΅μ„λ³΄κ³  λ‚˜ μžμ‹ μ—κ²Œ μ›ƒμŒμ„ 멈좜 수 μ—†μŠ΅λ‹ˆλ‹€. λ‚΄κ°€ κ·Έκ±Έ μ–΄λ–»κ²Œ 놓쳀어!

예, libexif-dev 이 컴퓨터에 μ„€μΉ˜λ˜μ–΄ μžˆμ§€ μ•ŠμŠ΅λ‹ˆλ‹€...

libexif-dev 둜 λ‹€μ‹œ λΉŒλ“œν•˜μ—¬ λ¬Έμ œκ°€ ν•΄κ²°λ˜μ—ˆμŠ΅λ‹ˆλ‹€.

(진심 πŸ˜’ λ‚΄κ°€ κ·Έκ±Έ μ–΄λ–»κ²Œ 놓쳀지)

κ°μ‚¬ν•©λ‹ˆλ‹€!

μ§€κΈˆ μž‘λ™ν•˜κ³  μžˆμ–΄ λ‹€ν–‰μž…λ‹ˆλ‹€!

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