ปรับขนาดและหมุนภาพโดยไม่ขึ้นอยู่กับข้อมูล EXIF?


10

มีตัวแก้ไขรูปภาพอย่างง่าย ๆ สำหรับ Linux ที่อนุญาตให้ปรับขนาดและหมุนภาพโดยไม่ใช้ข้อมูล EXIF ​​สำหรับการขยายและหมุนได้หรือไม่

ฉันได้ลองใช้EOG , ShotwellและGIMPแล้วและเมื่อฉันหมุนภาพพวกเขาเก็บไว้ในส่วนหัว EXIF ฉันไม่ต้องการ

แม้ว่า GIMP สามารถทำได้ แต่ใช้เวลานานเกินไปเนื่องจากต้องคลิกเมาส์เป็นตันเมื่อต้องรับมือกับไฟล์ JPEG


2
โดยพื้นฐานแล้วถ้าคุณหมุนรูปภาพ 90 องศาไปทางซ้ายคุณต้องการให้ภาพหมุนไปในข้อมูล 90 องศาไปทางซ้ายหรือไม่ ไม่ได้ผ่านข้อมูลที่เก็บไว้ในข้อมูล EXIF ​​ใช่ไหม
JakeGould

เผง ฉันต้องการสิ่งนั้นเพราะไฟล์ Github README.md ไม่เข้าใจ EXIF
จัสมินล็อกเนส

บิงโก! ฉันโพสต์คำตอบแบบเต็ม แต่ฉันเชื่อว่าปัญหาที่คุณพบคือความแตกต่างพื้นฐานระหว่างการบันทึกรูปภาพในโปรแกรมแก้ไขภาพที่ทันสมัยเทียบกับการส่งออกรูปภาพ คำตอบของฉันมีรายละเอียดมากขึ้น แต่ฉันเชื่อว่าถ้าคุณส่งออก JPEG ผ่าน GIMP คุณจะได้รับผลลัพธ์ที่แน่นอนที่คุณต้องการโดยไม่ต้องจัดการกับข้อมูล EXIF ​​ที่ได้รับการสนับสนุนสำหรับการแปลงเช่นการปรับขนาดและการหมุน
JakeGould

การใช้การส่งออกของ GIMP บน jpeg แบบ exif ที่ปล้นแล้วจะเพิ่มขึ้นใหม่
จัสมินล็อกเนส

ใช่มันอาจเพิ่มข้อมูล EXIF ​​ใหม่ แต่ข้อมูลรูปภาพจริงถูกเปลี่ยนเพื่อให้ตรงกับการวางแนวตามคำถามของคุณหรือไม่
JakeGould

คำตอบ:


15

มีตัวแก้ไขรูปภาพอย่างง่าย ๆ สำหรับ Linux ที่อนุญาตให้ปรับขนาดและหมุนภาพโดยไม่ใช้ข้อมูล EXIF ​​สำหรับการขยายและหมุนได้หรือไม่

ประหยัดกับการส่งออก

ฉันรู้ว่าคุณระบุว่าคุณไม่ต้องการทำสิ่งนี้ใน GIMP แต่จากประสบการณ์ของฉันปัญหาที่คุณพบ - ซอฟต์แวร์ที่สนับสนุนข้อมูลปฐมนิเทศ EXIF ​​มากกว่าการเปลี่ยนพิกเซลในภาพจริง - ทำให้ความแตกต่างระหว่างการส่งภาพและบันทึกภาพ

ในอดีต 100% โปรแกรมแก้ไขภาพทั้งหมดในโลกจะแปลง / แก้ไขพิกเซลเมื่อจัดการกับการวางแนวแบบง่าย ๆ เมื่อไม่นานมานี้โปรแกรมแก้ไขภาพเลื่อนการใช้ข้อมูล EXIF ​​เพื่อเก็บข้อมูลการแปลงทางกายภาพ

ทำไม? ง่าย. เนื่องจากรูปแบบ JPEG เป็นรูปแบบที่สูญเสีย - แม้ว่าจะตั้งค่าคุณภาพไว้ที่ 100% - การบันทึก JPEG สำหรับสิ่งง่าย ๆ เช่นการหมุนภาพจะทำให้ข้อมูลช้าลง ในทางตรงกันข้ามโดยการจัดเก็บข้อมูลนั้นเป็นข้อมูล EXIF ​​ภาพ JPEG ดิบจะไม่ถูกแตะต้อง แต่ข้อมูลการแปลงจะถูกส่งผ่านเพื่อให้คุณสามารถเห็นภาพหมุนได้โดยไม่ทำให้ภาพเสื่อมสภาพในกระบวนการ

นี่คือที่มาของแนวคิดการส่งออก โปรแกรมแก้ไขภาพจำนวนมากเช่น GIMP อนุญาตให้ส่งออกภาพซึ่งโดยทั่วไปจะหมายถึงการแก้ไขข้อมูลภาพเองและปรับให้เหมาะสมเพื่อใช้ในซอฟต์แวร์แก้ไขภาพที่ไม่ใช่ภาพ

ดังนั้นในขณะที่อาจมีเครื่องมือซอฟต์แวร์อื่น ๆ ที่ปรับเปลี่ยนข้อมูลภาพสำหรับงานอย่างการหมุนออกไปอย่างชัดเจน แต่อาจมีการใช้เกินขนาดในการติดตั้งและใช้งาน แต่ฉันขอแนะนำเพียงทดลองใช้ฟังก์ชันการส่งออกในซอฟต์แวร์แก้ไขภาพที่คุณใช้ ไม่ว่าจะเป็น GIMP, Photoshop หรืออย่างอื่น

การประมวลผลแบบแบตช์

จากทั้งหมดที่กล่าวมาคุณพูดถึงว่า GIMP อาจใช้เวลานานเกินไปสำหรับความต้องการของคุณ ไม่ชัดเจนว่าเวิร์กโฟลว์ที่แน่นอนของคุณคืออะไร แต่ถ้าคุณมีโฟลเดอร์ / ไดเรกทอรีที่เต็มไปด้วย JPEG คุณอาจต้องดำเนินการฉันขอแนะนำให้ตรวจสอบเครื่องมือที่กล่าวถึงในคำตอบอื่น ๆ นี้ :

  • exiftran : เครื่องมือที่ใช้ในการแปลงภาพ JPEG ของกล้องดิจิทัลซึ่งสามารถทำสิ่งต่อไปนี้:

มันสามารถทำการหมุนแบบ lossless เช่น jpegtran แต่ไม่เหมือนกับ jpegtran ที่ให้ความสำคัญกับข้อมูล EXIF: มันสามารถหมุนภาพโดยอัตโนมัติโดยการตรวจสอบแท็กการวางแนว exif มันจะอัปเดตข้อมูล exif หากจำเป็น (ขนาดภาพการวางแนว) . สามารถประมวลผลภาพหลายภาพในครั้งเดียว

  • JHead : โดยเฉพาะใช้jheadกับ-autorotตัวเลือกซึ่งอธิบายว่า:

ใช้แท็ก 'การวางแนว' ของส่วนหัว Exif หมุนภาพเพื่อให้ตั้งตรง โปรแกรม 'jpegtran' ใช้เพื่อหมุน โปรแกรมนี้มีอยู่ในลีนุกซ์ส่วนใหญ่ สำหรับ windows คุณต้องได้รับสำเนา หลังจากการหมุนแท็กการวางแนวของส่วนหัว Exif ถูกตั้งค่าเป็น '1' (การวางแนวปกติ) รูปขนาดย่อของ Exif จะถูกหมุนเช่นกัน ฟิลด์อื่น ๆ ของส่วนหัว Exif รวมถึงมิติจะไม่ถูกแตะต้อง แต่ความสูง / ความกว้างของ JPEG ถูกปรับ

คุณสมบัตินี้มีประโยชน์อย่างยิ่งกับกล้องดิจิตอลรุ่นใหม่ซึ่งตั้งค่าฟิลด์การวางแนวในส่วนหัว Exif โดยอัตโนมัติโดยใช้เซ็นเซอร์ทิศทางในตัวกล้อง

นี่คือเครื่องมืออื่นที่กล่าวถึงในหัวข้ออื่นนี้ :

  • NConvert : NConvert เป็นตัวแปลงรูปภาพ commandline หลายรูปแบบสำหรับ Win32, Linux, DOS, OS / 2 และแพลตฟอร์มอื่น ๆ เริ่มต้นอย่างรวดเร็วรายละเอียดดูเหมือนจะอยู่ที่นี่ และปรากฏว่าหากคุณใช้nconvertกับ-jpegtransตัวเลือกที่เป็นสิ่งที่คุณกำลังมองหา แต่ผมสงสัยว่าที่เพียงแค่ใช้ฟังก์ชั่นห้องสมุด / หลักเดียวกันของjpegtranเป็นนี้คำตอบอื่น ๆกับคำถามนี้แนะนำ?

สุดท้ายอาจใช้เครื่องมือImageMagick convertกับ-auto-orientตัวเลือกที่เหมาะกับคุณหรือไม่

อัตโนมัติทิศทาง

ปรับภาพเพื่อให้การวางแนวเหมาะสำหรับการดู (เช่นการวางแนวบนซ้าย)

โอเปอเรเตอร์นี้จะอ่านและรีเซ็ตการตั้งค่าโปรไฟล์ภาพ EXIF ​​'การวางแนว' จากนั้นดำเนินการหมุน 90 องศาที่เหมาะสมบนภาพเพื่อปรับทิศทางภาพเพื่อการรับชมที่ถูกต้อง

การตั้งค่าโปรไฟล์ EXIF ​​นี้มักจะตั้งค่าโดยใช้เซ็นเซอร์แรงโน้มถ่วงในกล้องดิจิตอลอย่างไรก็ตามภาพถ่ายที่ถ่ายโดยตรงหรือขึ้นไปข้างบนอาจไม่มีค่าที่เหมาะสม นอกจากนี้รูปภาพที่ถูกวางแนว 'แก้ไข' โดยไม่ต้องรีเซ็ตการตั้งค่านี้อาจถูก 'แก้ไข' อีกครั้งทำให้เกิดผลลัพธ์ที่ไม่ถูกต้อง หากโปรไฟล์ EXIF ​​ถูกปล้นก่อนหน้านี้ผู้ประกอบการ -auto-orient จะไม่ทำอะไรเลย


มันจะสมบูรณ์หากเครื่องมือ commandline สามารถหมุนพิกเซลจริงตาม EXIF ​​แล้วล้างข้อมูล EXIF ​​หลังจากนั้น เป็นไปได้ไหม
จัสมินล็อกเนส

1
@JasmineLognnes ฉันไม่ได้ใช้เครื่องมือเหล่านี้จริง ๆ แต่คำถามนี้เป็นข้อมูลอ้างอิงที่ดีสำหรับเครื่องมือที่ฉันควรตรวจสอบ - แต่ดูเหมือนว่าสำหรับฉันแล้วexiftranและjpegtranอาจเป็นสิ่งที่คุณกำลังมองหา ฉันจะทดลองกับตัวเลือกทั้งสองของเครื่องมือเหล่านั้นและดูว่าเกิดอะไรขึ้น ดีที่สุดที่ฉันสามารถทำได้ โชคดี!
JakeGould

1
คุณอาจรู้สึกว่าระบบเลือกคำตอบนี้เป็นการทดสอบการตรวจสอบในคิวตรวจสอบ LQ Post ฉันโหวตให้ไม่ลบ BTW และเห็นได้ชัดว่านั่นคือคำตอบที่ถูกต้อง :-)
fixer1234

@ fixer1234 ใช่ฉันเห็นว่าตัวเองเมื่อฉันตรวจสอบโพสต์ที่มีคุณภาพต่ำก่อนหน้านี้ เฮฮา! มันอาจถูกทริกเกอร์ด้วยจำนวนลิงก์ต่าง ๆ เพื่อแนะนำแพ็คเกจที่แตกต่างกัน แต่เดี๋ยวก่อน! ฉันมีความสุขที่มีกลไกการตรวจสอบอัตโนมัติที่อย่างน้อยก็มีองค์ประกอบการกรองของมนุษย์
JakeGould

2

ฉันมักจะใช้jpegtranเพื่อหมุนรูปถ่าย:

jpegtran -copy all -rotate 90 -outfile newimg.jpg oldimg.jpg

90 หมุนไปทางขวาใช้ 270 สำหรับซ้าย (และ 180 สำหรับการพลิก)


2

เมื่อส่งออกใน GIMP คุณสามารถคลิกขั้นสูงในป๊อปอัปก่อนบันทึกที่คุณสามารถปิดใช้งาน EXIF ​​และ XMP

อัลกอริทึมโดยรวมของสคริปต์:

  1. สำหรับแต่ละไฟล์
  2. exiftool * | grep Orientationบันทึกค่าจาก
  3. ลบ EXIF exiftran -ai *ด้วย
  4. ใช้convert -rotateกับค่าจากขั้นตอนที่ 2

นี่คือสิ่งที่ฉันกำลังมองหา วิธีที่ตรวจพบว่ารูปภาพถูกหมุนจากนั้นเป็นวิธีหมุนภาพตามนั้น ขอบคุณ!
xarlymg89

0

คุณสามารถใช้Exiftoolเพื่อลบข้อมูล EXIF ​​จากภาพ JPEG จากนั้นคุณสามารถหมุนภาพได้ทุกอย่าง (เช่นตัวแปลง )


ใช่มันยอดเยี่ยมมาก แต่เมื่อฉันแก้ไขภาพหลังจากนั้นส่วนหัว EXIF ​​ใหม่จะถูกเพิ่มเข้าไป
Jasmine Lognnes

1
EXIFTool สามารถลบข้อมูลได้ แต่จะไม่เปลี่ยนหมุนหรือปรับขนาดและรูปภาพ มันจะลบข้อมูลออกไปและ JPEG จะแสดงในรูปแบบ raw ที่มีอยู่เดิมสิ่งนี้มีประโยชน์ในบางกรณี แต่ไม่ใช่ในกรณีเช่นนี้
JakeGould
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.