Hướng dẫn how to save image from base64 in nodejs? - làm thế nào để lưu hình ảnh từ base64 trong nodejs?
CẬP NHẬTTôi đã tìm thấy liên kết thú vị này làm thế nào để giải quyết vấn đề của bạn trong PHP. Tôi nghĩ rằng bạn đã quên thay thế 1 bằng 2AS được hiển thị trong liên kết. Show
Tôi đã lấy vòng tròn này từ http://images-mediawiki-sites.thefullwiki.org/04/1/7/5/6204600836255205.png dưới dạng mẫu trông giống như: Tiếp theo tôi đặt nó qua http://www.greywyvern.com/code/php/binary2base64 đã trả lại cho tôi:
Đã lưu chuỗi này vào 3 mà tôi đã đọc trong mã của mình.
Tôi nhận được một vòng tròn trở lại, nhưng điều buồn cười là các tệp đã thay đổi :) ... CHẤM DỨTKhi bạn đọc lại hình ảnh, tôi nghĩ bạn cần thiết lập tiêu đề Lấy ví dụ ImagePng từ trang PHP:
Tôi nghĩ rằng dòng thứ hai 4, rất quan trọng khác, hình ảnh của bạn sẽ không được hiển thị trong trình duyệt, nhưng chỉ là một loạt dữ liệu nhị phân được hiển thị cho trình duyệt.Trong Express, bạn chỉ cần sử dụng một cái gì đó như dưới đây. Tôi sẽ hiển thị gravatar của bạn được đặt tại http://www.gravatar.com/avatar/cabf735ce7b8b4471ef46ea54f71832d?s=32&d= Tôi chỉ yêu cầu các tiêu đề vì những điều khác sẽ hiển thị một loạt các thứ nhị phân (Google Chrome ngay lập tức đi đến tải xuống) để điều khiển:
app.js Tìm hiểu cách chuyển đổi hình ảnh thành chuỗi base64 và quay lại hình ảnh.Bonus:Bạn cũng sẽ học cách nén hình ảnh với Jimp. Gần đây, tôi đã tham gia vào một dự án nơi hình ảnh được trả về từ trình duyệt ở định dạng 3 và chúng tôi cần viết hình ảnh vào đĩa. Tôi đã thực hiện một số nghiên cứu để xem liệu tôi có thể nhận được bất kỳ lời giải thích chi tiết nào về cách mọi thứ hoạt động với 3, bộ đệm, nhị phân và hình ảnh thật nhưng không thể tìm thấy bất kỳ giải pháp nào liên quan đến nodejs.Cố gắng làm cho nó hoạt động trực tiếp bằng cách đọc một hình ảnh với phương pháp 8 và đường ống trong đó trở lại hình ảnh sẽ hoạt động hoàn hảo bởi vì theo mặc định, 8 trả về 0 và đó là những gì chúng ta cần. Đây là một ví dụ.const fs = require("fs"); Mọi thứ có xu hướng trở nên phức tạp hơn một chút khi bạn muốn chuyển đổi chuỗi (base64) thông thường thành một hình ảnh thực tế. Trước tiên, bạn cần chuyển đổi chuỗi của mình thành bộ đệm trước khi lưu nó dưới dạng hình ảnh thực nếu không, bạn sẽ gặp vấn đề. // Base64 => Buffer => Image May mắn thay, Node.js cung cấp một mô -đun gốc gọi là bộ đệm có thể được sử dụng để thực hiện mã hóa và giải mã base64. Bộ đệm có sẵn như một đối tượng toàn cầu, điều đó có nghĩa là bạn không cần phải yêu cầu rõ ràng mô -đun này trong ứng dụng của mình. Trong nội bộ, 0 đại diện cho dữ liệu nhị phân dưới dạng chuỗi byte. Đối tượng bộ đệm cung cấp một số phương thức để thực hiện các chuyển đổi mã hóa và giải mã khác nhau. Điều này bao gồm và từ UTF-8, UCS2, Base64, ASCII, UTF-16 và thậm chí cả sơ đồ mã hóa HEX.Base64 Mã hóaTrước hết chúng ta hãy chuyển đổi hình ảnh của chúng tôi thành base64 và sau đó thành bộ đệm const fs = require("fs"); Cơ sở64 để hình ảnhBây giờ bạn có thể chuyển đổi bộ đệm thành một hình ảnh thực tế chỉ bằng một dòng mã: // Ống một hình ảnh với New New-path.jpg, tên là tên.fs.writefilesync (Hồi New-path.jpg, bộ đệm); ThưởngTối ưu hóa hình ảnh rất quan trọng trong những ngày này vì hầu hết các hình ảnh có kích thước lớn và điều này chắc chắn sẽ làm chậm các trang web của chúng tôi. Tôi sẽ sử dụng Jimp để chỉ cho bạn cách giảm chất lượng hình ảnh một cách nhanh chóng bằng cách giảm kích thước của dữ liệu bộ đệm mà chúng tôi nhận được và chuyển đổi nó thành một hình ảnh thực tế. Cài đặt Jimp: yarn add jimp Bạn có thể chỉ cần giảm chất lượng hình ảnh của mình xuống 50% chỉ với một vài dòng mã. Tôi sẽ sử dụng chuỗi Base64 làm nguồn dữ liệu của tôi. 0Tôi rất thích cung cấp một số tín dụng bổ sung cho người tạo ra Jimp vì nó giải quyết gần như mọi thứ bạn muốn làm với một hình ảnh thực tế trong NodeJS và không phụ thuộc. Tôi đã không có vấn đề gì khi sử dụng nó trong một ứng dụng điện tử. Sự kết luậnChúng ta có thể:
Nếu bạn đã đến điểm này, thì tôi sẽ nói lời chúc mừng vì bạn rất tuyệt vời :). Tôi hy vọng bạn tìm thấy điều này hữu ích. Codding hạnh phúc 💻 🙂 Làm cách nào để lưu một hình ảnh trong Base64 nút JS?Rawbody, base64data = cơ thể.thay thế (/^dữ liệu: hình ảnh \/png; base64,/, ""), binyData = new Buffer (base64Data, 'base64').toString ('nhị phân');yêu cầu ("fs").writefile ("ra ... image.. nút.JS .. base64.. binaryfiles.. Làm thế nào để bạn giải mã một bộ đệm nhị phân cho một hình ảnh trong nút js?readSync (fd, imageBuffer, 0, kích thước, địa chỉ); hãy để imgdata = new blob (nhị phân. bộ đệm, {type: 'application/octet nhị phân'}); Let link = url.createdObjectURL (imgData); dữ liệu.src = hình ảnh mới (); img.
Làm cách nào để chuyển đổi hình ảnh thành base64?Để giải mã một hình ảnh từ chuỗi được mã hóa base64, hãy thực hiện các bước sau ... Mở Base64 để chuyển đổi hình ảnh .. Nhập chuỗi mã hóa Base64 .. Chọn loại hình ảnh..... Sau khi chọn loại hình ảnh, nhấp vào nút "Tạo hình ảnh" .. Công cụ giải mã chuỗi được mã hóa base64 và hiển thị hình ảnh .. |