Thay đổi kích thước hình ảnh theo kích thước thực tế được sử dụng trong trình chỉnh sửa?


20

Có cách nào để thay đổi kích thước hình ảnh theo kích thước thực tế mà chúng sẽ được hiển thị trong bài viết không? Tôi có người dùng nhập một hình ảnh lớn và sau đó thay đổi kích thước nó trong trình chỉnh sửa trực quan. Điều này thật dễ dàng, vì họ chỉ có thể kéo hình ảnh cho đến khi nó có kích thước họ muốn, mà không cần mở trình chỉnh sửa hình ảnh, thay đổi kích thước hình ảnh, lưu nó và tải lên dưới dạng tệp đính kèm riêng biệt. Tất nhiên, điều này đôi khi dẫn đến một hình ảnh rộng 100px trong bài viết, nhưng thực tế là 1500px.

Có một plugin làm điều này khi một bài viết mới được lưu? Tôi muốn giữ hình ảnh kích thước đầy đủ hiện có (để liên kết hoặc thay đổi kích thước sau này), nhưng chỉ cần thêm một kích thước bổ sung (và lưu nó vào _wp_attachment_metadatađối tượng), vì vậy bài đăng này có hình ảnh ở kích thước chính xác và tham chiếu đến các tập tin đính kèm kích thước đầy đủ.

Tất nhiên, tất cả các bài viết hiện có cũng nên được xử lý một lần. <img>thẻ có thể có chỉ là một width, chỉ là một height, hoặc không ai trong số họ: tất cả điều này nên được làm sạch lên, vì vậy tất cả họ đều có đúng width, heightvà một hình ảnh của kích thước đó.


Bạn có ổn với giải pháp phía máy chủ thay đổi kích thước hình ảnh một cách nhanh chóng dựa trên các tham số được truyền đến một URL hình ảnh hiện tại không? Apache / Mod_Rewrite?
hakre

@hakre: Bạn có nghĩa là một bộ lọc lưu sau đi qua bài đăng và viết lại từng hình ảnh image.png?w=300&h=400, hoặc image-300x400.png, sau đó tôi sẽ chọn qua Mod_Rewrite và thay đổi kích thước (và bộ đệm) theo yêu cầu? Đó có phải là một lợi thế so với việc tạo các hình ảnh đã thay đổi kích thước một lần (trong hành động hậu lưu đó) và phục vụ chúng dưới dạng các tệp tĩnh?
Jan Fabry

@Jan Fabry Vâng, đó là những gì trong tâm trí của tôi. Ưu điểm là, bạn chỉ tạo hình ảnh theo yêu cầu, miễn là tác giả chỉnh sửa bài đăng, điều này sẽ không tạo tệp mỗi lần. Bên cạnh việc không chặn chỉnh sửa, nó sẽ tách rời khỏi wp hơn để bạn thậm chí có thể tạo một số dịch vụ máy chủ, CDN bộ nhớ đệm ngoại tuyến hoặc bất cứ thứ gì. :) --- wp.com làm điều gì đó tương tự nếu tôi thấy đúng.
hakre

Kết hợp với bộ nhớ đệm, phương pháp này thực sự tỏa sáng. Tôi sẽ giả sử có một plugin cho việc này. Bạn cũng có thể chạy cài đặt Zenphoto cùng với một plugin như Zenphoto Gallery (của riêng tôi: lmazy.verrech.net/zenphoto-gallery )
Raphael

@Raphael: Thật vậy, hôm nay tôi đã nghiên cứu các plugin có thể, và một số sử dụng phương pháp này. Nếu bạn có một cái gì đó để thêm vào danh sách rút gọn của tôi , xin vui lòng làm như vậy, tất cả đều có thể chỉnh sửa.
Jan Fabry

Câu trả lời:


11

Tôi đã tạo ra hai plugin cùng nhau để giải quyết nhu cầu của tôi. Họ hiện đang ở giai đoạn alpha sớm, và tất cả các ý kiến ​​đều được chào đón.

Plugin cơ sở là một Resizer theo yêu cầu . Plugin này giám sát các yêu cầu đối với các tệp không tồn tại trong thư mục tải lên và tạo hình ảnh có kích thước được yêu cầu nếu cần. Ví dụ: image-200x100.jpgsẽ tạo và trả lại image.jpg, nhưng thay đổi kích thước thành 200 x 100 pixel. Hình ảnh được lưu bởi tên đó trong thư mục, vì vậy các yêu cầu tiếp theo được xử lý thẳng bởi máy chủ.

Plugin thứ hai, thay đổi kích thước thẻ img , sửa đổi <img>thẻ để các srcthuộc tính của chúng bao gồm dữ liệu chiều rộng và / hoặc chiều cao. Điều này cho phép các plugin đầu tiên phục vụ các hình ảnh chính xác. Họ cùng nhau làm những gì tôi muốn và tôi chỉ cần tạo một hàm chạy một lần để chuyển đổi tất cả các bài đăng hiện có, nhưng điều đó thật dễ dàng (tôi không muốn kết nối the_contentvới thứ gì đó chỉ nên chạy một lần).

Plugin "phần thưởng" thứ ba, hình ảnh trung gian ảo , chặn việc tạo hình ảnh trung gian khi tải lên hình ảnh mới trong WordPress. Vì chúng vẫn được tạo bởi plugin đầu tiên nếu được yêu cầu, điều này cho phép bạn chỉ định nhiều kích thước hình ảnh mà không chiếm dung lượng đĩa trừ khi chúng thực sự được sử dụng. Điều này không cần thiết cho hai cái đầu tiên để làm việc, nhưng nó là một bổ sung dễ dàng và nó làm nổi bật thực tế là tôi vẫn cần phải làm việc xung quanh trình chỉnh sửa hình ảnh WordPress, nhưng tôi sẽ làm điều đó khi tôi tạo trình chỉnh sửa hình thu nhỏ của mình , nó cũng sẽ sử dụng plugin đầu tiên.


1
Những âm thanh thực sự xuất sắc! Tôi không thể chờ đợi để có thời gian dùng thử khi tôi cần chúng cho các tình huống thực tế.
MikeSchinkel

Công cụ tuyệt vời. Bạn đang xem xét để thêm chúng vào kho lưu trữ plugin worpdress?
hakre

@hakre: Vâng thực sự. Khi tôi đã chuẩn bị sẵn sàng cho đánh giá ngang hàng :-)
Jan Fabry 7/12/2016

4

Tôi đã tìm kiếm thư mục plugin cho "resize"hoặc "crop"( câu hỏi sau cho một câu hỏi khác ) và ghi nhận những phát hiện của tôi trong bảng tính công khai của Google . Tìm kiếm plugin rất khó hiểu về số kết quả của nó (trang cuối cùng của "resize"tìm kiếm hiển thị "Hiển thị 145-150 trong số 273 plugin"), vì vậy tôi có thể đã bỏ lỡ một số. Ghi chú liên quan đến bán: mọi người dường như nghĩ rằng thế giới cần một plugin trình chiếu khác. Ít ai có thể nhận ra rằng content_save_precó thể là một bộ lọc tốt hơn để thực hiện phân tích cú pháp nặng hơn the_content.

Tôi chưa thử nghiệm bất kỳ plugin nào trong số này, nhưng đây là danh sách các plugin dường như làm những gì tôi muốn. Tôi đã thêm số phiên bản "Tương thích lên đến" trong ngoặc đơn.

Suy nghĩ cá nhân: Bốn người đầu tiên viết lại URL thành một trang động (đại loại như /wp-content/plugins/my-plugin/image.php?src=[original src]&w=100&h=50), với các hình thức lưu trữ khác nhau. Tôi thích một hình ảnh thực sự được tạo ra khi cần thiết, tương tự như cách tiếp cận mà ImageScaler thực hiện. Tuy nhiên, tôi sẽ phân tách điều này (và bao gồm đề xuất của hakre trong các bình luận) và trước tiên viết lại tất cả các URL từ /wp-content/uploads/2010/11/image.jpgđến /wp-content/uploads/2010/11/image-100x50.jpg, sau đó để một tập lệnh tạo các hình ảnh bị thiếu. Yêu cầu đầu tiên cho hình ảnh này tạo ra hình ảnh, tất cả các yêu cầu tiếp theo sử dụng hình ảnh được tạo này. Điều này cũng cho phép tôi phân chia chức năng trên các plugin khác nhau. Tôi sẽ đăng giải pháp này trong một câu trả lời riêng biệt.

Các plugin này giới hạn hình ảnh ở một kích thước tối đa nhất định (Điều này khác với việc chỉ định $content_widthnhư thế nào?):

Các plugin sau đây thú vị vì những lý do khác:

  • TimThumb gặp TinyMCE , bao gồm nút thay đổi kích thước thủ công trong trình chỉnh sửa TinyMCE (2.8.4)

Đây là một bài viết trên Wiki cộng đồng, vì vậy nó có thể được cập nhật nếu bạn tìm thấy các plugin mới.


0

Điều gì về việc sử dụng biến thời gian và biến qua để tự động thay đổi kích thước / kích thước hình ảnh và mức thu phóng? Bằng cách này, kích thước hình ảnh gốc vẫn có thể được duy trì. Nếu bạn cần một số ví dụ xuống dòng này cho tôi biết.


0

Wordpress cung cấp ba kích thước mặc định (nhỏ, trung bình, lớn) có thể được cấu hình. Nếu bạn sử dụng chúng, Wordpress tạo các bản sao đã thay đổi kích thước. Có lẽ là phong cách tốt để sử dụng những cái đó và đặt số để chúng phù hợp với phong cách hiện tại. Điều này dẫn đến hình ảnh không có kích thước khác nhau trên toàn trang và cho phép điều chỉnh toàn cầu khi chủ đề thay đổi.


Tôi biết tốt nhất nên bám vào các kích thước hình ảnh được xác định trước, nhưng khách hàng của tôi không :-) Nếu họ có thể thay đổi kích thước hình ảnh trong trình chỉnh sửa, hệ thống sẽ tuân theo lựa chọn đó.
Jan Fabry

Chà, bạn có thể loại bỏ khả năng này và buộc họ làm việc sạch sẽ;)
Raphael

Đó cũng là một câu hỏi thú vị: "Làm cách nào để tắt chức năng thay đổi kích thước trong TinyMCE?" Nếu bạn biết câu trả lời cho điều đó, vui lòng tạo một câu hỏi mới và tự trả lời nó, nó có thể sẽ hữu ích cho người khác.
Jan Fabry

0

Plugin Image Pro được phát hành gần đây dường như làm chính xác điều này. Chưa tự mình kiểm tra, bản demo trông rất ấn tượng, lưu ý khả năng tương thích trình duyệt kém (chỉ có tại Firefox).

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.