5

Tôi đã suy nghĩ một lúc về giải pháp tốt nhất và nhiều như tôi đọc, tôi càng ngày càng bối rối. Có rất nhiều thư viện và người trợ giúp khác nhau (hầu hết chúng đều lỗi thời hoặc cho CI 1.x) và tôi thực sự cần sự giúp đỡ của bạn.Cách tốt nhất để xử lý hình ảnh thu nhỏ trên trang web tin tức (CMS tùy chỉnh dựa trên codeigniter) là gì?

Tôi có CMS tùy chỉnh dựa trên CodeIgniter 2.1.3, trang web tin tức có khoảng 40-50 hình ảnh trên trang chủ, nhưng 80% trong số đó là hình thu nhỏ nhỏ ở 3 kích thước khác nhau và 20% khác hình ảnh trên trang chủ có 2 kích thước + cho các trang bên trong khi tôi liệt kê tin tức từ một danh mục có 1 kích thước hình thu nhỏ. Vì vậy, tổng cộng tôi sẽ cần hình ảnh gốc cho tin bài, + 5-6 hình thu nhỏ kích thước cho trang chủ.

Cách thông minh nhất để giải quyết vấn đề này là gì? Sẽ có 10-10 tin tức mới mỗi ngày.

  1. Vẫn còn tốt hơn khi tạo 5-6 hình thu nhỏ cho mỗi hình ảnh trong khi tải lên?
  2. Còn phương pháp “đang bay” thì sao? Tôi đọc thêm về phương pháp này, như tôi đã đọc, chỉ có khách truy cập đầu tiên sẽ gọi thư viện/người trợ giúp để tạo hình thu nhỏ và cho những người khác hình thu nhỏ sẽ được tạo để nó không lãng phí CPU. Còn phương pháp này thì sao? Có thực hành tốt không?

Tôi nên sử dụng kỹ thuật bộ nhớ đệm nào cho những gì tôi cần?

Ngoài ra tôi quên hỏi, cách hệ thống CMS khác xử lý việc tạo hình thu nhỏ? Ý tôi là về Wordpress, Drupal, Joomla, v.v.

Chúng có lưu trữ các kích cỡ được xác định trước hoặc tạo chúng bay không?

Tôi đoán logic của họ nên là tốt nhất, hoặc có thể không, nhưng tôi muốn thực hiện một cái gì đó thông minh trong CMS CodeIgniter của tôi.

Tôi không đề cập đến, nhưng tôi nghĩ điều này không quan trọng đối với điều này, tôi sử dụng Grocery CRUD cho bảng quản trị.

Mọi trợ giúp đều được đánh giá cao.

Trả lời

0

Tôi thích cách Drupal quản lý việc này. Trong Drupal 6 có một mô-đun gọi là imagecache (bây giờ là lõi trong Drupal 7, nhưng chức năng rất giống nhau), về cơ bản lưu trữ các giá trị đặt trước (hình ảnh, biến đổi, hiệu ứng ...) và khi khách truy cập yêu cầu một hình ảnh mô-đun tạo ra các hình ảnh khác nhau dựa trên các giá trị đặt trước và phục vụ hình ảnh này. Bằng cách này bạn tải lên một hình ảnh nhưng có hình ảnh khác nhau cho các mục đích khác nhau.

Mô-đun có một tính năng thực sự hữu ích, nếu bạn muốn thay đổi một giá trị đặt sẵn, bạn có thể "xả" tất cả các hình ảnh liên quan với giá trị đặt trước đó, để khách truy cập có thể thấy các thay đổi.

Tất nhiên có rất nhiều module khác trong Drupal liên quan đến imagecache hoặc phong cách, đó là thêm các hiệu ứng khác như hình ảnh watermarks ...

Thông tin thêm:

2

Đặt cược tốt nhất của bạn là tạo hình ảnh khi đang bay + sử dụng CDN như Amazon Cloudfront để lưu bộ nhớ cache ns của hình ảnh nguồn của bạn.

Tôi đã sử dụng CodeIgniter trong nhiều năm để xây dựng trang web có nhiều kích thước hình ảnh khác nhau được sử dụng trên toàn bộ trang web. Lúc đầu, tôi đã từng tạo mọi kích thước cần thiết từ hình ảnh gốc trong quá trình tải lên (có thể dễ dàng kết thúc với hơn 5 hình thu nhỏ). Điều này được chứng minh là mang lại hiệu suất tốt nhất - bất cứ khi nào bạn cần một hình ảnh có kích thước nhất định, bạn chỉ cần bao gồm nó mà không cần xử lý thêm PHP. Tuy nhiên tôi nhận thấy rằng tôi kết thúc với một số lượng lớn các hình ảnh trên máy chủ, nơi những người lớn tuổi thậm chí có thể không được sử dụng thường xuyên (ví dụ: bài viết cũ hơn một năm). Cộng với phát triển theo cách này mất nhiều thời gian hơn.

Sau đó, tôi bắt đầu tạo hình ảnh khi đang di chuyển, trước tiên sử dụng thư viện của bên thứ 3 và sau đó phát triển giao diện của riêng tôi cho CodeIgniter. Điều này tiết kiệm rất nhiều thời gian, bởi vì trong quá trình tải lên, bạn lưu một phiên bản gốc của hình ảnh không đáng lo ngại về các phiên bản đã thay đổi kích thước. Khi hiển thị hình ảnh ở giao diện người dùng, tất cả những gì bạn cần làm là vượt qua các kích thước nhất định của hình ảnh được yêu cầu. Làm theo cách này, không chỉ bạn có thể nhận được 5-6 phiên bản của hình ảnh, nhưng nhiều như bạn cần. Ngoài ra, đó là giải pháp cho tương lai khi bạn thiết kế lại trang web của mình nơi có thể cần các hình ảnh có kích thước khác nhau! Bạn sẽ làm gì khi không có tùy chọn nào trong số 5 tùy chọn hình thu nhỏ của bạn không còn hợp lệ và bạn cần các kích thước khác nhau?

Bạn nói đúng, thay đổi kích thước hình ảnh trên thực tế có thể là hoạt động tiêu thụ CPU (đặc biệt là khi các hình ảnh lớn được tham gia), do đó việc lưu vào bộ nhớ cache là điều bắt buộc. Bạn có thể lưu hình ảnh ngay trên máy chủ của bạn hoặc nhận CDN trên đó. Để giữ cho máy chủ gọn gàng, tôi thường chạy một công việc định kỳ để xóa các hình ảnh đang chạy cũ hơn chúng ta hãy nói một tuần. Điều đó tiết kiệm không gian + không gây hại - bất cứ khi nào hình ảnh là cần thiết để hiển thị, nó sẽ chỉ được tái tạo.

+0

Đây chính là lý do tại sao tôi hơn vào phương pháp "on the fly", vì vậy bây giờ hãy cho tôi biết cách tốt nhất để làm điều đó và làm thế nào để làm điều đó là gì , thư viện nào để sử dụng, cách sử dụng nó, v.v. – MarkC

+0

Bạn có thể chơi với điều này: http://phpthumb.sourceforge.net/. Tuy nhiên, tôi thấy nó là một thư viện khá nặng và nó có thể gây ra một chút chi phí xử lý. Tôi không biết các thư viện không có sẵn công khai dành riêng cho CodeIgniter và tôi đã viết thư của riêng mình. Gửi tin nhắn cho tôi nếu bạn muốn xem nó. Nếu không, bạn có thể tìm kiếm các thư viện cho PHP nguyên gốc, không đặc biệt cho CI; chúng phải dễ tích hợp. – Aidas

+0

Tôi liên kết với một lib đặc biệt cho CI bên dưới – stef

Các vấn đề liên quan