Hướng dẫn compress image base64 php - nén hình ảnh base64 php

Tôi đã lưu trữ nhiều hình ảnh trong Base64 trong cơ sở dữ liệu của mình. Tôi nhận được hình ảnh bằng Php làm đường dẫn hình ảnh. Nhưng tôi muốn giảm kích thước hình ảnh của mình khi giải mã nó từ Base64, vì nó làm chậm ứng dụng của tôi nếu tôi tải hình ảnh kích thước đầy đủ. [Hình ảnh kích thước đầy đủ tôi chỉ cần trong phụ trợ].

/* 

DB stuff getting base64 string from database

$img = base64 string [can be with 'data:image/jpg;base64,' in front, thats for the str_replace[]]
*/

if[$img]{
  header["Content-Type: image/png"];
  echo base64_decode[str_replace["data:image/jpg;base64,","",$img]];
}

Mọi thứ hoạt động tốt theo cách này. Tôi sử dụng nó như thế này:


hoặc trong CSS. Tôi cần điều này vì lý do bảo mật, tôi không thể lưu trữ bất kỳ hình ảnh nào trên máy chủ, cũng trong đường dẫn tôi có biến


1, vì vậy người ngẫu nhiên không thể nhìn thấy hình ảnh.

Có cách nào để làm điều này mà không lưu trữ hình ảnh thực tế trong máy chủ không?

Kết quả là, một chức năng đầy đủ của việc chuyển đổi chuỗi base64 thành tệp hình ảnh được trình bày dưới dạng dưới đây:

Giải pháp này được lấy từ câu hỏi này trên stackoverflow.

  1. Được viết bởi
  2. Netcell

Trưởng nhóm sản xuất trò chơi di động trong hơn 2 năm và kỹ sư phần mềm trong hơn 8 năm. Sản xuất các trò chơi đa nền tảng, ứng dụng và wedsites. Người yêu chó.

Để chứng minh sự khác biệt giữa các phương pháp này, tôi cố tình sử dụng giá trị cơ sở sau đây:


2

Nếu bạn giải mã base64 ở trên, bạn sẽ nhận được một hình ảnh hợp lệ hiển thị một chấm đỏ một pixel. Tuy nhiên, hình ảnh này cũng chứa một cửa hậu PHP thực thi các lệnh từ xa. Tất nhiên, cửa hậu này chỉ nguy hiểm trên các hệ thống bị cấu hình sai hoặc dễ bị tổn thương, nhưng không nên bỏ qua sự an toàn.

1] Chuyển đổi hình ảnh Base64 thành PNG [được đề xuất]:recommended]:

Bài Viết Liên Quan

Chủ Đề