GNU/Linux >> Belajar Linux >  >> Linux

Penskalaan dan rotasi gambar tanpa bergantung pada data EXIF?

Apakah ada editor gambar sederhana untuk Linux yang memungkinkan penskalaan dan rotasi gambar tanpa menggunakan data EXIF ​​untuk penskalaan dan rotasi?

Menyimpan Versus Ekspor

Saya tahu Anda menyatakan bahwa Anda tidak benar-benar ingin melakukan ini di GIMP, tetapi menurut pengalaman saya, masalah yang Anda hadapi—perangkat lunak yang mendukung data orientasi EXIF ​​daripada mengubah piksel dalam gambar—bermuara pada perbedaan antara mengekspor gambar dan menyimpan sebuah gambar.

Di masa lalu, 100% semua editor gambar di dunia akan benar-benar mengubah/memodifikasi piksel saat berhadapan dengan transformasi orientasi sederhana. Baru-baru ini program pengeditan gambar menunda penggunaan data EXIF ​​untuk menyimpan beberapa data transformasi fisik.

Mengapa? Mudah. Karena format JPEG adalah format lossy—bahkan ketika kualitas ditetapkan pada 100%—menyimpan ulang JPEG untuk hal-hal sederhana seperti rotasi gambar akan menurunkan data secara perlahan. Berbeda dengan menyimpan data tersebut sebagai info EXIF, gambar JPEG mentah dibiarkan tidak tersentuh tetapi data transformasi diteruskan sehingga Anda dapat melihat gambar diputar tanpa menurunkan kualitas gambar dalam prosesnya.

Di sinilah konsep ekspor berperan. Banyak program pengeditan gambar seperti GIMP memungkinkan seseorang mengekspor gambar yang pada dasarnya berarti memodifikasi data gambar itu sendiri dan mengoptimalkannya untuk digunakan dalam perangkat lunak pengeditan non-gambar.

Jadi, meskipun mungkin ada perangkat lunak lain yang secara eksplisit memodifikasi data gambar untuk tugas seperti rotasi di luar sana, menginstal dan menggunakannya mungkin berlebihan. Sebaliknya saya akan merekomendasikan hanya bereksperimen dengan fungsi ekspor di perangkat lunak pengedit gambar apa pun yang Anda gunakan; apakah itu GIMP, Photoshop atau yang lainnya.

Pemrosesan Berkelompok

Semua yang dikatakan, Anda menyebutkan bagaimana GIMP mungkin terlalu memakan waktu untuk kebutuhan Anda. Tidak jelas apa alur kerja Anda sebenarnya, tetapi jika Anda memiliki folder/direktori yang diisi dengan JPEG yang mungkin perlu Anda proses, saya akan merekomendasikan untuk menyelidiki alat yang disebutkan dalam jawaban lain ini:

  • exiftran :Alat yang digunakan untuk mengubah gambar JPEG kamera digital yang dapat melakukan hal berikut:

Ia dapat melakukan rotasi lossless seperti jpegtran, tetapi tidak seperti jpegtran, ia peduli dengan data EXIF:Ia dapat memutar gambar secara otomatis dengan memeriksa tag orientasi exif, memperbarui informasi exif jika diperlukan (dimensi gambar, orientasi), ia juga memutar gambar mini exif. Itu dapat memproses banyak gambar sekaligus.

  • JHead :Secara khusus menggunakan jhead dengan -autorot opsi yang dijelaskan sebagai:

Menggunakan tag 'Orientasi' pada header Exif, putar gambar agar tegak. Program 'jpegtran' digunakan untuk melakukan rotasi. Program ini hadir di sebagian besar distribusi Linux. Untuk windows, Anda perlu mendapatkan salinannya. Setelah rotasi, tag orientasi dari header Exif disetel ke '1' (orientasi normal). Exifthumbnail juga diputar. Kolom lain dari header Exif, termasuk dimensi tidak disentuh, tetapi tinggi/lebar JPEG disesuaikan.

Fitur ini sangat berguna dengan kamera digital terbaru, yang menyetel bidang orientasi di header Exif secara otomatis menggunakan sensor orientasi bawaan di kamera.

Ini adalah alat lain yang disebutkan di utas lain ini:

  • NKonversi :NConvert adalah konverter gambar baris perintah multi-format untuk Win32, Linux, DOS, OS/2, dan platform lainnya. Detail mulai cepat sepertinya ada di sini. Dan ternyata jika menggunakan nconvert dengan -jpegtrans opsi itulah yang Anda cari. Tapi saya bertanya-tanya apakah itu hanya menggunakan fungsi pustaka/inti yang sama dari jpegtran seperti yang direkomendasikan oleh jawaban lain pada pertanyaan ini?

Terakhir, mungkin menggunakan ImageMagick convert alat dengan -auto-orient pilihan akan bekerja untuk Anda?

-orientasi otomatis

menyesuaikan gambar sehingga orientasinya cocok untuk dilihat (yaitu orientasi kiri atas).

Operator ini membaca dan menyetel ulang setelan 'Orientasi' profil gambar EXIF ​​lalu melakukan rotasi 90 derajat yang sesuai pada gambar untuk mengarahkan gambar, agar dapat dilihat dengan benar.

Pengaturan profil EXIF ​​​​ini biasanya diatur menggunakan sensor gravitasi di kamera digital, namun foto yang diambil langsung ke bawah atau ke atas mungkin tidak memiliki nilai yang sesuai. Juga gambar yang orientasinya telah 'diperbaiki' tanpa menyetel ulang pengaturan ini, mungkin akan 'diperbaiki' lagi sehingga menghasilkan hasil yang salah. Jika profil EXIF ​​sebelumnya dilucuti, operator -auto-orient tidak akan melakukan apa pun.


Saya biasanya menggunakan jpegtran untuk memutar foto:

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

90 berputar ke kanan, gunakan 270 untuk kiri (dan 180 untuk membalik).


Saat mengekspor di GIMP, Anda dapat mengeklik Lanjutan di munculan tepat sebelum menyimpan tempat Anda dapat menonaktifkan EXIF ​​dan XMP.

Keseluruhan algoritme untuk membuat skripnya:

  1. Untuk setiap file.
  2. Simpan nilai dari exiftool * | grep Orientation .
  3. Hapus exif dengan exiftran -ai * .
  4. Gunakan convert -rotate dengan nilai dari langkah 2.

Linux
  1. Bagaimana Cara Mengganti Nama Banyak Foto Dan Video Berdasarkan Data Exif?

  2. Tantangan dan Janji Big Data

  3. Ikhtisar CCPA dan GDPR

  1. Disk sistem dan disk data FAQ

  2. Tutorial Honeypot – Mode dan Cara Kerja Honeypot

  3. Bagaimana cara melihat data biner mentah sebagai gambar dengan lebar dan tinggi tertentu?

  1. Mengapa Data Penting Dan Bagaimana Cara Melindunginya

  2. Dapatkan bidang data WHOIS tanpa menguraikan?

  3. Ubah ukuran LVM tanpa kehilangan data