Is it possible to manipulate images inside of vuejs using vanilla js? I've successfully been able to upload the pic and send it directly to my s3 bucket using vue but I can't for the life of me figure out how to transform an image WITHIN vuejs and then display it...document.querySelector does not work...I've been trying for days but I can't get the images to resize inside of vue...it only works as regular vanilla js but I can't transfer it to vue. Below is my attempt...I'm desperate...any help is greatly appreciated!
HTML CODE
<div id="imageAPP">
 <div v-if="!image">
    <h2>Select an image</h2> 
    <input type="file" id="upload" @change="imageFileChange">
 </div>
 <div v-else>
    <br>
    <br>
    {{fileName}}
    <br>
    <br>
    <img :src="image" ref="output"/>
    <button v-if="!uploadIMAGE" @click="removeImage">Remove image</button>
    <button v-if="!uploadIMAGE" @click="uploadImage">Upload image</button>
 </div>
 <br>  
 <br>
 <h2 v-if="uploadIMAGE">Success! Image uploaded to bucket.</h2
Vue Code
new Vue({
          el: "#imageAPP", 
          data: {
            image: '',
            uploadIMAGE: ''
          },
          methods: {
            imageFileChange (e) {
                let files = e.target.files || e.dataTransfer.files      
                if (!files.length) return
                this.fileName = files[0].name;
                this.createImage(files[0]) 
            },
            createImage (file) {
                let reader = new FileReader()                  
                reader.readAsDataURL(file)                  
                reader.onload = (e) => {     
                  this.image = e.target.result;  
                }
             },
                reader.onload = function(event){
                  this.image = event.target.result;
                  const imgElement = document.createElement("img");
                  imgElement.src = this.image;
                  document.querySelector("#input").src = event.target.result;
                  imgElement.onload = function(e){
                    const canvas = document.createElement("canvas");
                    const MAX_WIDTH = 260;
                    const MAX_HEIGHT = 194;
                    canvas.width = MAX_WIDTH;
                    canvas.height = MAX_HEIGHT;
                    const ctx = canvas.getContext("2d");
                    ctx.drawImage(e.target, 0, 0, canvas.width, canvas.height);
                    const srcEndcoded = ctx.canvas.toDataURL(e.target, "image/jpeg");}
                    console.log(e.target);
                    document.querySelector("#output2").src = srcEndcoded2;
            },
            
            removeImage: function (e) {
                console.log('Remove clicked')
                this.image = ''
            },
            
            uploadImage: async function (e) {
                console.log('Upload clicked')
                const response = await axios({
                  method: 'GET',
                  url: API_ENDPOINT_IMAGE
                })
                console.log('Response: ', response.data)
                console.log('Uploading: ', this.image)
                let binary = atob(this.image.split(',')[1])
                let array = []
                for (var i = 0; i < binary.length; i++) {
                  array.push(binary.charCodeAt(i))
                }
                let blobData = new Blob([new Uint8Array(array)], {type: 'image/jpeg'})
                console.log('Uploading to: ', response.data.uploadIMAGE)
                const result = await fetch(response.data.uploadIMAGE, {
                  method: 'PUT',
                  body: blobData
                })
                console.log('Result: ', result);
                this.uploadIMAGE = response.data.uploadIMAGE.split('?')[0];
            }
            
          }
      })