Chà, một trong những điều tôi nhận thấy sau khi chuyển sang ghost là không có bất kỳ công cụ thay đổi kích thước hình ảnh nào OOTB. Tính năng này dự kiến sẽ được phát hành trong tương lai. Trong khi chúng ta chờ đợi, tôi đã tự mình nghĩ ra một giải pháp nhanh chóng và tiết kiệm Ý kiến Phát triển API lấy kích thước của hình ảnh nhất định làm tham số và trả về hình ảnh đã thay đổi kích thước để phản hồi Để có được các thành phần, một chuyến đi đến npm là theo thứ tự. Sau khi tìm kiếm một lúc, tôi tình cờ thấy một gói hàng, tên là Sharp. Gói này có vẻ khá phổ biến, với hơn 1. 2 triệu lượt tải xuống hàng tuần (đến nay) Mẹo chuyên nghiệp. tìm kiếm các gói đang được sử dụng nhiều và số lượt tải xuống là thước đo tốt để đánh giá mức độ phổ biến của một gói trong cộng đồng. Nguy cơ gói không được hỗ trợ sẽ thấp hơn nếu mức độ sử dụng của cộng đồng cao hơn Sharp giúp chuyển đổi hình ảnh lớn thành hình ảnh nhỏ hơn, thân thiện với web ở các định dạng khác nhau như PNG, JPG, AVIF, WebP, v.v. Bây giờ gói thay đổi kích thước đã được quyết định, đã đến lúc thực hiện sự cố công nghệ
Đúng vậy, bây giờ chúng ta đã quyết định tất cả các thành phần, đã đến lúc bắt đầu viết mã Kéo trong các gói cần thiết
Cài đặt cơ bản
Hải cảng. là số cổng mà API sẽ được triển khai bằng express/node kích thước tối đa. Kích thước tối đa của hình ảnh được cung cấp cho API, tôi đặt giới hạn là 5MB tại đây kho. chúng tôi đang sử dụng bộ lưu trữ bộ nhớ ở đây chứ không phải bộ lưu trữ đĩa [được sử dụng khi có ý định tải tệp lên hệ thống tệp của máy chủ]. Đây là một tham số multer Thiết lập phần mềm trung gian multer
Đây là phần mềm trung gian multer cho express. Chúng ta có thể chỉ định các tham số kiểm soát ở đây, chẳng hạn như
Ghi chú. Nếu bạn có ý định sử dụng một biểu mẫu trên giao diện người dùng thì hãy đảm bảo giá trị được truyền dưới dạng tham số cho một phương thức phải giống hệt như thuộc tính tên của biểu mẫu HTML Lộ trình 'bài viết'
This route, named /upload, is developed to process the requests with the multipart/form-data enctype. Putting it differently, use enctype multipart/form-data when your form includes , this is a multer requirement btw. Trình xử lý tuyến đường này mong đợi phần sau trong phần thân yêu cầu
Sau khi xử lý các giá trị mặc định, khởi tạo và lỗi, dòng sau đây là nơi chúng tôi đưa vào sắc nét để giúp thay đổi kích thước hình ảnh đã cho
Cuối cùng, chúng ta cần đặt tiêu đề phản hồi trước khi trả lại bộ đệm hình ảnh đã thay đổi kích thước cho người gọi
Kích hoạt máy chủ
Điều này đảm bảo máy chủ được khởi động và đang lắng nghe trên cổng đã cho [3000] cho các kết nối đến Ghi chú. bạn có thể truy cập vào mã hoàn chỉnh trên Github của tôi Kiểm tra API Bây giờ chúng ta đã hoàn thành việc mã hóa, đã đến lúc kiểm tra đơn vị
Bớt tư tưởng Lập trình là niềm vui. Biến tình huống thành cơ hội, tôi chắc chắn rằng có nhiều cách để thay đổi kích thước hình ảnh mà không cần phải phát triển công cụ của riêng bạn, tôi cũng không cố ám chỉ rằng đoạn mã này là tốt nhất và bao gồm tất cả các tình huống. Không có sẵn bộ thay đổi kích thước OOTB đã cho tôi ý tưởng viết một blog về việc tự mình phát triển một cái đơn giản. Điều này đã giúp ích cho nội dung blog và tôi hy vọng nó sẽ giúp được ai đó đang gặp khó khăn trong việc xử lý bất kỳ thành phần nào được mô tả trong bài viết này. Tôi cũng hy vọng điều này sẽ thúc đẩy những người khác không bận tâm về điều gì đó đã được thực hiện trước đây, chỉ thực hiện nó như một dự án sở thích và tận hưởng quá trình phát triển một thứ gì đó hữu hình Bạn có thể thay đổi kích thước hình ảnh trong JavaScript không?Thay đổi kích thước hình ảnh trong JavaScript - Sử dụng phần tử canvas. Phần tử HTML hàm drawImage cho phép chúng ta kết xuất và chia tỷ lệ hình ảnh trên phần tử canvas .
Nodejs có tốt cho việc xử lý hình ảnh không?Với tính năng xử lý hình ảnh, ứng dụng của bạn có thể thay đổi kích thước và nén tất cả hình ảnh do người dùng tải lên, điều này có thể cải thiện đáng kể hiệu suất ứng dụng của bạn và tiết kiệm dung lượng ổ đĩa máy chủ của bạn. Nút. js có một hệ sinh thái gồm các thư viện mà bạn có thể sử dụng để xử lý hình ảnh, chẳng hạn như mô-đun sharp, jimp và gm . |