Hướng dẫn how to convert base64 string into image in javascript? - làm thế nào để chuyển đổi chuỗi base64 thành hình ảnh trong javascript?

Đây không chính xác là kịch bản của OP mà là một câu trả lời cho những người bình luận. Đây là một giải pháp dựa trên Cordova và Angular 1, có thể thích ứng với các khung khác như jQuery. Nó cung cấp cho bạn một BLOB từ dữ liệu Base64 mà bạn có thể lưu trữ ở đâu đó và tham khảo nó từ phía máy khách JavaScript / HTML.

Nó cũng trả lời câu hỏi ban đầu về cách lấy hình ảnh (tệp) từ dữ liệu cơ sở 64:

Phần quan trọng là cơ sở 64 - Chuyển đổi nhị phân:

function base64toBlob(base64Data, contentType) {
    contentType = contentType || '';
    var sliceSize = 1024;
    var byteCharacters = atob(base64Data);
    var bytesLength = byteCharacters.length;
    var slicesCount = Math.ceil(bytesLength / sliceSize);
    var byteArrays = new Array(slicesCount);

    for (var sliceIndex = 0; sliceIndex < slicesCount; ++sliceIndex) {
        var begin = sliceIndex * sliceSize;
        var end = Math.min(begin + sliceSize, bytesLength);

        var bytes = new Array(end - begin);
        for (var offset = begin, i = 0; offset < end; ++i, ++offset) {
            bytes[i] = byteCharacters[offset].charCodeAt(0);
        }
        byteArrays[sliceIndex] = new Uint8Array(bytes);
    }
    return new Blob(byteArrays, { type: contentType });
}

Cắt lát là cần thiết để tránh lỗi bộ nhớ.

Hoạt động với các tệp JPG và PDF (ít nhất đó là những gì tôi đã thử nghiệm). Nên làm việc với các mô hình/ContentTyPes khác. Kiểm tra các trình duyệt và các phiên bản của họ mà bạn nhắm đến, họ cần hỗ trợ Uint8array, Blob và Atob.

Đây là mã để ghi tệp vào bộ nhớ cục bộ của thiết bị với Cordova / Android:

...
window.resolveLocalFileSystemURL(cordova.file.externalDataDirectory, function(dirEntry) {

                    // Setup filename and assume a jpg file
                    var filename = attachment.id + "-" + (attachment.fileName ? attachment.fileName : 'image') + "." + (attachment.fileType ? attachment.fileType : "jpg");
                    dirEntry.getFile(filename, { create: true, exclusive: false }, function(fileEntry) {
                        // attachment.document holds the base 64 data at this moment
                        var binary = base64toBlob(attachment.document, attachment.mimetype);
                        writeFile(fileEntry, binary).then(function() {
                            // Store file url for later reference, base 64 data is no longer required
                            attachment.document = fileEntry.nativeURL;

                        }, function(error) {
                            WL.Logger.error("Error writing local file: " + error);
                            reject(error.code);
                        });

                    }, function(errorCreateFile) {
                        WL.Logger.error("Error creating local file: " + JSON.stringify(errorCreateFile));
                        reject(errorCreateFile.code);
                    });

                }, function(errorCreateFS) {
                    WL.Logger.error("Error getting filesystem: " + errorCreateFS);
                    reject(errorCreateFS.code);
                });
...

Viết tập tin chính nó:

function writeFile(fileEntry, dataObj) {
    return $q(function(resolve, reject) {
        // Create a FileWriter object for our FileEntry (log.txt).
        fileEntry.createWriter(function(fileWriter) {

            fileWriter.onwriteend = function() {
                WL.Logger.debug(LOG_PREFIX + "Successful file write...");
                resolve();
            };

            fileWriter.onerror = function(e) {
                WL.Logger.error(LOG_PREFIX + "Failed file write: " + e.toString());
                reject(e);
            };

            // If data object is not passed in,
            // create a new Blob instead.
            if (!dataObj) {
                dataObj = new Blob(['missing data'], { type: 'text/plain' });
            }

            fileWriter.write(dataObj);
        });
    })
}

Tôi đang sử dụng các phiên bản Cordova (6.5.0) và plugin mới nhất:

Tôi hy vọng điều này đặt tất cả mọi người ở đây theo đúng hướng.

Chuyển đổi Base64 thành hình ảnh JavaScript với các ví dụ mã

Giải pháp để chuyển đổi Base64 thành JavaScript hình ảnh sẽ được chứng minh bằng các ví dụ trong bài viết này.

 function dataURLtoFile(dataurl, filename) {
 
        var arr = dataurl.split(','),
            mime = arr[0].match(/:(.*?);/)[1],
            bstr = atob(arr[1]), 
            n = bstr.length, 
            u8arr = new Uint8Array(n);
            
        while(n--){
            u8arr[n] = bstr.charCodeAt(n);
        }
        
        return new File([u8arr], filename, {type:mime});
    }
    
    //Usage example:
    var file = dataURLtoFile('data:text/plain;base64,aGVsbG8gd29ybGQ=','hello.txt');
    console.log(file);

Một cách tiếp cận khác, bao gồm một số mẫu mã, có thể được sử dụng để giải quyết vấn đề giống hệt nhau Chuyển đổi Base64 sang JavaScript hình ảnh. Giải pháp này được giải thích dưới đây.

$('#img').attr('src',data);

Để giải quyết vấn đề JavaScript chuyển đổi cơ sở sang hình ảnh, chúng tôi đã xem xét nhiều trường hợp.

Chuyển đổi Base64 thành Hình ảnh trong JavaScript/JQuery

  • function capture_image () {
  • cảnh báo (Capture_image);
  • var p = webcam.capture ();
  • webcam.save();
  • cảnh báo (Chụp hoàn thành,+P); // Làm đúng ở đây.
  • var img = canvas.todataurl (hình ảnh hình ảnh);
  • var item_image = img.replace (/^data: Image \/(png | jpg); base64,/, Hồi Hồi);

Làm cách nào để chuyển đổi Base64 sang JPEG?

Cách chuyển đổi các tệp Base64 bằng cách sử dụng Aspose ..

  • Tải lên tệp base64 hoặc dán mã cơ sở64 vào khu vực văn bản ..
  • Dữ liệu Base64 của bạn sẽ được tải lên và sẽ được chuyển đổi thành định dạng JPEG ..
  • Tải xuống liên kết của các tệp JPEG sẽ có sẵn ngay sau khi chuyển đổi ..

Làm cách nào để tạo một cơ sở hình ảnh64?

Bạn chỉ có thể tạo một đối tượng hình ảnh và đặt base64 làm src của nó, bao gồm cả dữ liệu: hình ảnh ... một phần như thế này: var Image = new Image (); hình ảnh. src = 'Dữ liệu: hình ảnh/png; base64, ivborw0k ...'; tài liệu.

  • Làm thế nào tôi có thể chuyển đổi hình ảnh Base64 thành TypeScript?
  • Nếu bạn có URL dữ liệu và bạn muốn nó được hiển thị trong phần tử IMG, chỉ cần đặt SRC thành URL dữ liệu. Bạn không cần phải chuyển đổi nó thành một hình ảnh. Mặc dù vậy, chỉ cần sử dụng hình ảnh làm nguồn cấp dữ liệu của bạn cho. Chỉ cần tạo một hình ảnh, đặt SRC thành URL dữ liệu và sử dụng hình ảnh đó cho bạn.
  • Chuyển đổi Base64 thành hình ảnh JavaScript với các ví dụ mã

Giải pháp để chuyển đổi Base64 thành JavaScript hình ảnh sẽ được chứng minh bằng các ví dụ trong bài viết này.

Một cách tiếp cận khác, bao gồm một số mẫu mã, có thể được sử dụng để giải quyết vấn đề giống hệt nhau Chuyển đổi Base64 sang JavaScript hình ảnh. Giải pháp này được giải thích dưới đây.

  • Để giải quyết vấn đề JavaScript chuyển đổi cơ sở sang hình ảnh, chúng tôi đã xem xét nhiều trường hợp.
  • Chuyển đổi Base64 thành Hình ảnh trong JavaScript/JQuery
  • function capture_image () {
  • cảnh báo (Capture_image);
  • var p = webcam.capture ();

cảnh báo (Chụp hoàn thành,+P); // Làm đúng ở đây.

var img = canvas.todataurl (hình ảnh hình ảnh);

var item_image = img.replace (/^data: Image \/(png | jpg); base64,/, Hồi Hồi);

Cách chuyển đổi các tệp Base64 bằng cách sử dụng Aspose. Chuyển đổi hình ảnh

Tải lên tệp base64 hoặc dán mã cơ sở64 vào khu vực văn bản.

Dữ liệu Base64 của bạn sẽ được tải lên và sẽ được chuyển đổi thành định dạng JPEG.

Tải xuống liên kết của các tệp JPEG sẽ có sẵn ngay sau khi chuyển đổi.

Làm cách nào để hiển thị hình ảnh từ chuỗi Base64 trực tuyến?

Chuyển đổi Base64 sang hình ảnh trực tuyến bằng công cụ giải mã miễn phí cho phép bạn giải mã base64 dưới dạng hình ảnh và xem trước nó trực tiếp trong trình duyệt. Làm thế nào để chuyển đổi base64 thành hình ảnh trực tuyến

Dán chuỗi của bạn vào trường Base Base64.

Nhấn nút Decode Decode Base64 sang Image.

Nhấp vào liên kết tên tệp để tải xuống hình ảnh.

Làm cách nào để chuyển đổi chuỗi base64 thành hình ảnh bằng JavaScript?

Làm thế nào để chuyển đổi Base64 thành JavaScript hình ảnh ?..
hàm capture_image () {.
cảnh báo (Capture_image) ;.
var p = webcam. chiếm lấy();.
webcam. tiết kiệm();.
cảnh báo (Chụp hoàn thành,+P); // Làm đúng ở đây ..
var img = canvas. Todataurl (hình ảnh hình ảnh) ;.
var item_image = img. thay thế (/^dữ liệu: hình ảnh \/(png | jpg); base64,/,,);

Làm cách nào để chuyển đổi Base64 sang JPEG?

Cách chuyển đổi các tệp Base64 bằng cách sử dụng Aspose ...
Tải lên tệp base64 hoặc dán mã cơ sở64 vào khu vực văn bản ..
Dữ liệu Base64 của bạn sẽ được tải lên và sẽ được chuyển đổi thành định dạng JPEG ..
Tải xuống liên kết của các tệp JPEG sẽ có sẵn ngay sau khi chuyển đổi ..

Làm cách nào để tạo một cơ sở hình ảnh64?

Bạn chỉ có thể tạo một đối tượng hình ảnh và đặt base64 làm src của nó, bao gồm cả dữ liệu: hình ảnh ... một phần như thế này: var Image = new Image ();hình ảnh.src = 'Dữ liệu: hình ảnh/png; base64, ivborw0k ...';tài liệu.create an Image object and put the base64 as its src , including the data:image... part like this: var image = new Image(); image. src = 'data:image/png;base64,iVBORw0K...'; document.

Làm thế nào tôi có thể chuyển đổi hình ảnh Base64 thành TypeScript?

Nếu bạn có URL dữ liệu và bạn muốn nó được hiển thị trong phần tử IMG, chỉ cần đặt SRC thành URL dữ liệu.Bạn không cần phải chuyển đổi nó thành một hình ảnh.Mặc dù vậy, chỉ cần sử dụng hình ảnh làm nguồn cấp dữ liệu của bạn cho.Chỉ cần tạo một hình ảnh, đặt SRC thành URL dữ liệu và sử dụng hình ảnh đó cho bạn.create an image, set the src to the data URL, and use that image for your .