screen_rotation
Copied to Clipboard
<html> <head> <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script> </head> <body> <div id="app"> <h3>Vue Convert Base64 to Image</h3> <textarea v-model="base64Code"></textarea> <div class="image-container" v-if="imageUrl"> <img :src="imageUrl" :alt="altText"> </div> </div> <script type="module"> const app = new Vue({ el: "#app", data() { return { base64Code: "", imageUrl: null, altText: "Sample Image" }; }, watch: { base64Code: function (val) { if (val) { this.imageUrl = this.convertBase64ToImage(val); } } }, methods: { convertBase64ToImage(base64) { const image = new Image(); image.src = base64; return URL.createObjectURL(this.base64ToBlob(base64)); }, base64ToBlob(base64) { const byteString = atob(base64.split(',')[1]); const mimeString = base64.split(',')[0].split(':')[1].split(';')[0]; const ab = new ArrayBuffer(byteString.length); const ia = new Uint8Array(ab); for (let i = 0; i < byteString.length; i++) { ia[i] = byteString.charCodeAt(i); } return new Blob([ab], { type: mimeString }); } } }); </script> <style scoped> #app { display: flex; flex-direction: column; align-items: center; } h3 { font-size: 1.5rem; margin: 1rem 0; } textarea { width: 100%; padding: 1rem; margin-bottom: 1rem; font-size: 1.2rem; border: 1px solid #ccc; border-radius: 5px; resize: vertical; } .image-container { width: 100%; max-width: 600px; margin-top: 1rem; display: flex; justify-content: center; } img { max-width: 100%; height: auto; border-radius: 5px; } </style> </body> </html>