Mengubah ukuran gambar ke ukuran aktual yang digunakan dalam editor?

20

Apakah ada cara untuk mengubah ukuran gambar ke ukuran sebenarnya yang akan ditampilkan di pos? Saya memiliki pengguna yang mengimpor gambar besar dan kemudian mengubah ukurannya di editor visual. Ini mudah, karena mereka hanya dapat menarik gambar sampai ukuran yang mereka inginkan, tanpa terlebih dahulu membuka editor gambar, mengubah ukuran gambar, menyimpannya, dan mengunggahnya sebagai lampiran terpisah. Tentu saja, ini kadang-kadang menghasilkan gambar yang 100px lebar di pos, tetapi pada kenyataannya 1500px.

Apakah ada plugin yang melakukan ini ketika sebuah posting baru disimpan? Saya ingin menyimpan gambar ukuran penuh yang ada (untuk menautkan, atau nanti mengubah ukuran), tetapi hanya menambahkan ukuran ekstra (dan menyimpannya di _wp_attachment_metadataobjek), jadi posting ini memiliki gambar dalam ukuran yang benar, dan referensi ke lampiran ukuran penuh.

Tentu saja, semua posting yang ada juga harus ditangani satu kali. <img>tag mungkin hanya memiliki width, hanya satu height, atau tidak ada dari mereka: ini semua harus dibersihkan, sehingga mereka semua memiliki yang benar width, heightdan gambar sebesar itu.

Jan Fabry
sumber
Apakah Anda setuju dengan solusi sisi server yang mengubah ukuran gambar dengan cepat berdasarkan parameter yang diteruskan ke URL gambar yang ada? Apache / Mod_Rewrite?
hakre
@hakre: Maksud Anda filter pasca-simpan yang melewati pos dan menulis ulang setiap gambar sebagai image.png?w=300&h=400, atau image-300x400.png, yang kemudian akan saya ambil melalui Mod_Rewrite dan mengubah ukuran (dan cache) berdasarkan permintaan? Apakah itu keuntungan dari membuat gambar yang diubah ukurannya sekali (dalam tindakan pasca simpan), dan melayani mereka sebagai file statis?
Jan Fabry
@ Jan Fabry Ya, itulah yang ada di pikiran saya. Keuntungannya, Anda hanya membuat gambar berdasarkan permintaan, jadi selama penulis mengedit posting, ini tidak akan membuat file per-se. Di samping tidak memblokir pengeditan, itu lebih dipisahkan dari wp sehingga Anda bahkan dapat membuat beberapa layanan server, caching ekstravaganza atau apa pun. :) --- wp.com melakukan hal serupa jika saya melihatnya benar.
hakre
Dikombinasikan dengan caching, pendekatan ini sangat bersinar. Saya akan berasumsi ada plugin untuk ini. Anda juga dapat menjalankan instalasi Zenphoto bersama-sama dengan plugin seperti Zenphoto Gallery (milik saya: lmazy.verrech.net/zenphoto-gallery )
Raphael
@ Raphael: Memang, hari ini saya meneliti plugin yang mungkin, dan beberapa mengambil pendekatan ini. Jika Anda memiliki sesuatu untuk ditambahkan ke daftar pendek saya , silakan lakukan, itu dapat diedit oleh semua.
Jan Fabry

Jawaban:

11

Saya membuat dua plugin yang bersama-sama harus menyelesaikan kebutuhan saya. Mereka saat ini dalam tahap alfa awal, dan semua komentar diterima.

Plugin dasar adalah Pengubah Permintaan Berdasarkan Permintaan . Plugin ini memonitor permintaan untuk file yang tidak ada di dir upload, dan membuat gambar dengan ukuran yang diminta jika diperlukan. Misalnya, image-200x100.jpgakan membuat dan kembali image.jpg, tetapi diubah ukurannya menjadi 200 kali 100 piksel. Gambar disimpan oleh nama itu di direktori, sehingga permintaan lebih lanjut ditangani langsung oleh server.

Plugin kedua, Ubah ukuran tag img , memodifikasi <img>tag sehingga srcatributnya termasuk data lebar dan / atau tinggi. Ini memungkinkan plugin pertama untuk menyajikan gambar yang benar. Bersama-sama mereka melakukan apa yang saya inginkan, dan saya hanya perlu membuat fungsi run-once untuk mengkonversi semua posting yang ada, tetapi itu harus mudah (saya tidak ingin menghubungkan ke the_contentsesuatu yang harus dijalankan hanya sekali).

Plugin "bonus" ketiga, gambar perantara Virtual , memotong pembuatan gambar perantara saat mengunggah gambar baru di WordPress. Karena mereka masih dibuat oleh plugin pertama jika diminta, ini memungkinkan Anda untuk menentukan beberapa ukuran gambar tanpa mengambil ruang disk kecuali mereka benar-benar digunakan. Ini tidak diperlukan untuk dua yang pertama untuk bekerja, tetapi itu adalah penambahan yang mudah, dan ini menyoroti fakta bahwa saya masih perlu bekerja di sekitar editor gambar WordPress, tetapi saya akan melakukannya ketika saya membuat editor thumbnail saya , yang juga akan gunakan plugin pertama.

Jan Fabry
sumber
1
Ini terdengar sangat bagus! Saya tidak sabar untuk memiliki waktu untuk mencobanya ketika saya membutuhkannya untuk skenario dunia nyata.
MikeSchinkel
Hal yang bagus. Apakah Anda mempertimbangkan untuk menambahkannya ke repositori plugin worpdress?
hakre
@akre: Ya memang. Setelah saya siapkan mereka untuk peer review :-)
Jan Fabry
4

Saya telah mencari direktori plugin untuk "resize"atau "crop"(yang terakhir untuk pertanyaan lain ), dan mencatat temuan saya di spreadsheet Google publik . Pencarian plugin sangat membingungkan dalam angka hasilnya (halaman terakhir "resize"pencarian menunjukkan "Menampilkan 145-150 dari 273 plugin"), jadi saya mungkin telah melewatkan beberapa. Catatan semi-terkait: semua orang tampaknya berpikir dunia membutuhkan plugin slideshow lainnya. Sedikit yang menyadari bahwa content_save_premungkin filter yang lebih baik untuk melakukan parsing berat daripada the_content.

Saya belum menguji salah satu dari plugin ini, tetapi di sini ada daftar plugin yang tampaknya melakukan apa yang saya inginkan. Saya menambahkan nomor versi "Kompatibel hingga" dalam tanda kurung.

Pikiran pribadi: Empat yang pertama menulis ulang URL ke halaman dinamis (seperti /wp-content/plugins/my-plugin/image.php?src=[original src]&w=100&h=50), dengan berbagai bentuk caching. Saya lebih suka gambar nyata yang dibuat sesuai kebutuhan, mirip dengan pendekatan yang dilakukan ImageScaler. Namun, saya akan membagi hal ini (dan termasuk saran hakre dalam komentar) dan pertama kali menulis ulang semua URL dari /wp-content/uploads/2010/11/image.jpgke /wp-content/uploads/2010/11/image-100x50.jpg, dan kemudian membiarkan script membuat gambar hilang. Permintaan pertama untuk gambar ini membuat gambar, semua permintaan berikutnya menggunakan gambar yang dibuat ini. Ini juga memungkinkan saya untuk membagi fungsionalitas di berbagai plugin. Saya akan memposting solusi ini dalam jawaban terpisah.

Plugin ini membatasi gambar hingga ukuran maksimum tertentu (Apa bedanya dengan menentukan $content_width?):

Plugin berikut ini menarik karena alasan lain:

Ini adalah pos Wiki Komunitas, sehingga dapat diperbarui jika Anda menemukan plugin baru.

Jan Fabry
sumber
0

Bagaimana dengan menggunakan variabel timthumb dan passing untuk secara otomatis mengubah ukuran / dimensi gambar dan tingkat pembesaran? Dengan cara ini ukuran gambar asli masih dapat dipertahankan. Jika Anda membutuhkan beberapa contoh di baris ini, beri tahu saya.

NetConstructor.com
sumber
0

Wordpress menawarkan tiga ukuran standar (kecil, sedang, besar) yang dapat dikonfigurasi. Jika Anda menggunakan ini, Wordpress membuat salinan yang diubah ukurannya. Ini mungkin gaya yang baik untuk menggunakannya dan mengatur angka sehingga sesuai dengan gaya saat ini. Ini menghasilkan gambar yang tidak memiliki ukuran berbeda di seluruh halaman dan memungkinkan penyesuaian global ketika tema berubah.

Raphael
sumber
Saya tahu yang terbaik adalah tetap pada ukuran gambar yang telah ditentukan, tetapi klien saya tidak :-) Jika mereka dapat mengubah ukuran gambar di editor, itu hanya logis bahwa sistem mengikuti pilihan itu.
Jan Fabry
Nah, Anda dapat menghapus kemungkinan ini dan memaksa mereka untuk bekerja dengan bersih;)
Raphael
Itu juga pertanyaan yang menarik: "Bagaimana cara menonaktifkan fungsi pengubahan ukuran di TinyMCE?" Jika Anda tahu jawabannya, silakan buat pertanyaan baru dan jawab sendiri, itu mungkin akan bermanfaat bagi orang lain.
Jan Fabry
0

Plugin Image Pro yang baru saja dirilis sepertinya melakukan hal ini. Belum diuji sendiri, demo terlihat sangat mengesankan, perhatikan kompatibilitas browser yang buruk (hanya Firefox saat ini).

Jarang
sumber