Tôi hiện đang sử dụng ImageMagick để xác định kích thước hình ảnh được tải lên trang web. Bằng cách gọi ImageMagick là "xác định" trên dòng lệnh, nó mất khoảng 0,42 giây để xác định kích thước của 1MB JPEG cùng với thực tế là nó là một JPEG. Tôi thấy hơi chậm.Cách nhanh nhất để xác định độ phân giải hình ảnh và loại tệp trong dòng lệnh PHP hoặc Unix?
Sử dụng thư viện ảnh Imagick PHP thậm chí còn chậm hơn khi nó tải toàn bộ 1MB vào bộ nhớ trước khi thực hiện bất kỳ điều trị nào cho hình ảnh (trong trường hợp này, chỉ cần xác định kích thước và loại của nó).
Có giải pháp nào để tăng tốc quá trình xác định loại tệp nào và kích thước nào mà tệp hình ảnh tùy ý có? Tôi có thể sống với nó chỉ hỗ trợ JPEG và PNG. Điều quan trọng với tôi là loại tệp được xác định bằng cách xem các tiêu đề của tệp và không chỉ đơn giản là phần mở rộng.
Edit: Các giải pháp có thể là một công cụ dòng lệnh UNIX gọi bằng PHP, giống như cách tôi đang sử dụng ImageMagick tại thời điểm
Nhưng GD có cung cấp cách xác định loại tệp theo nội dung của nó (và không phải là phần mở rộng được chỉ định của nó) không? Ngoài ra, bạn phải đo thời gian để tải hình ảnh vào GD, vì tôi không thực hiện bất kỳ quá trình xử lý nào khác ngoài việc xác định kích thước tệp. – Gilles
Tôi đã thêm bài kiểm tra vào câu trả lời của mình. Tôi không biết liệu GD có tải toàn bộ tệp hình ảnh vào bộ nhớ hay không vì tôi không xem bộ nhớ. Nhưng tôi bắt kịp thời gian hoàn thành để lệnh chạy. Ngoài ra getimagesize() cũng trả về loại mime. –
Cảm ơn tất cả những nỗ lực, tôi đã thử nghiệm nó trực tiếp và nó thực sự nhanh hơn 250 lần so với giải pháp -ping. Vì vậy, khoảng 5000 lần nhanh hơn so với phương pháp ban đầu tôi đã sử dụng, không phải là xấu :) – Gilles