Image Split Grid

by Craig Martin

HTML

<script src="https://cdnjs.cloudflare.com/ajax/libs/html2canvas/1.4.1/html2canvas.min.js"></script>

<script src="https://cdnjs.cloudflare.com/ajax/libs/html2canvas/1.4.1/html2canvas.min.js" integrity="sha512-BNaRQnYJYiPSqHHDb58B0yaPfCu+Wgds8Gp/gU33kqBtgNS4tSPHuGibyoeqMV/TJlSKda6FXzoEyYGjTe+vXA==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>


<input type="file" id="spimg" value=""/><button onclick="spliT(3)">6 Grid Split</button><button onclick="spliT(2)">4 Grid Split</button>

<button onclick="downloadIMGS()">Download Images</button>


<div id="wrappergrid"></div>

    <div id="output_cont">
      <img style="display:none;" id="output">
    </div>

CSS

#wrappergrid {
  display:flex;
  flex-wrap:wrap; 
}
.splitImg {
  padding: 1px;
  background-clip: content-box;
  background-repeat: no-repeat;
}

JavaScript

const status = document.getElementById('status');
      const output = document.getElementById('output');
      if (window.FileList && window.File && window.FileReader) {
        document.getElementById('spimg').addEventListener('change', event => {
          output.src = '';
          //status.textContent = '';
          const file = event.target.files[0];
          if (!file.type) {
            //status.textContent = 'Error: The File.type property does not appear to be supported on this browser.';
            return;
          }
          if (!file.type.match('image.*')) {
            //status.textContent = 'Error: The selected file does not appear to be an image.'
            return;
          }
          const reader = new FileReader();
          reader.addEventListener('load', event => {
            output.src = event.target.result;
          });
          reader.readAsDataURL(file);
        }); 
      }

    






function spliT(gridsize){
//imgURL="https://cdn.shopify.com/s/files/1/0647/4927/3302/files/b4aeani.jpg?v=1665448691";
//imgURL="https://cdn.shopify.com/s/files/1/0647/4927/3302/files/giveaway_2.jpg?v=1668538697";

//imgURL= $('#spimg').val();



$('#wrappergrid').html("");

imgURL=output.src;
	var length = gridsize;
	var ylength = gridsize;
	var width = document.getElementById("output").width,
			height = document.getElementById("output").height,
			_length = -length,
			i, j;

		var $basicDiv = jQuery('<div/>', {
			class: 'splitImg',
			css: {
				'width': Math.floor(width/length),
				'height': Math.floor(height/ylength),
				//'background-image': 'url(' + img.src + ')'
        'background-image': 'url(' +output.src + ')'

			}
		});

		var wrappergrid = $('#wrappergrid').width(width + length * 2); 
		
		for (i = 0; i > _length; i--) {
			for (j = 0; j > _length; j--) {
				$basicDiv.clone().css({'background-position': `${width/length * j}px ${height/ylength * i}px`}).appendTo(wrappergrid);
			}
		}
    
    var tgt = window.event.srcElement,
...