Zum Hauptinhalt springen
';
resultArea.innerHTML = '';
resultArea.classList.add('show');
// re-bind IDs
document.getElementById('result-content').textContent = b64;
document.getElementById('result-meta').textContent = resultMeta.textContent;
btnMain.disabled = false;
btnMain.textContent = '处理';
};
reader.onerror = function() {
showError('文件读取失败');
btnMain.disabled = false;
btnMain.textContent = '处理';
};
reader.readAsDataURL(file);
} else {
if (!textInput) {
showError('请输入 Base64 数据');
btnMain.disabled = false;
btnMain.textContent = '处理';
return;
}
var mime = 'image/png';
var data = textInput.replace(/^data:image\/[a-z]+;base64,/, '');
var match = textInput.match(/^data:(image\/[a-z]+);base64,/);
if (match) mime = match[1];
try {
var bin = atob(data);
var bytes = new Uint8Array(bin.length);
for (var i = 0; i < bin.length; i++) bytes[i] = bin.charCodeAt(i);
var blob = new Blob([bytes], {type: mime});
var url = URL.createObjectURL(blob);
resultContent.textContent = '已生成图片 (下方预览)';
resultMeta.textContent = 'Base64 → 图片: ' + mime + ', ' + bytes.length + ' 字节';
var preview = '';
resultArea.innerHTML = '';
resultArea.classList.add('show');
} catch(err) {
showError('Base64 解码失败: ' + err.message);
}
btnMain.disabled = false;
btnMain.textContent = '处理';
}
});
btnClear.addEventListener('click', function() {
document.getElementById('file').value = '';
document.getElementById('text').value = '';
document.getElementById('mode').value = 'img2base64';
// Reset result area
resultArea.innerHTML = '';
resultContent = document.getElementById('result-content');
resultMeta = document.getElementById('result-meta');
resultArea.classList.remove('show');
errorMsg.classList.remove('show');
document.querySelectorAll('.form-group-text').forEach(function(el){el.style.display='';});
document.querySelectorAll('.form-group-file').forEach(function(el){el.style.display='';});
});
// Toggle text/file fields
function syncFields() {
var mode = document.getElementById('mode').value;
var txtGroup = document.querySelector('.form-group-text');
var fileGroup = document.querySelector('.form-group-file');
if (mode === 'img2base64') {
txtGroup.style.display = 'none';
fileGroup.style.display = '';
} else {
txtGroup.style.display = '';
fileGroup.style.display = 'none';
}
}
document.getElementById('mode').addEventListener('change', syncFields);
syncFields();
})();