Using this link - Convert event.target.files into a JSON string I was able to get the file data. I form a JSON with like - {'fileName':xyz.jpeg,'file': <fileContent>}
and pass it to an Apex Controller. I used below code to insert the file ( using ContentVersion metadata ) like below (https://www.salesforcecodecrack.com/2019/06/custom-file-upload-in-lightning-web.html)
String fileData = EncodingUtil.urlDecode((String)data.get('file'), 'UTF-8');
// inserting file
ContentVersion cv = new ContentVersion();
cv.Title = (String)data.get('fileName');
cv.PathOnClient = '/' + data.get('fileName');
cv.FirstPublishLocationId = '0033h0000054rJVAAY'; // A contact record Id to test
cv.VersionData = EncodingUtil.base64Decode(fileData);
cv.IsMajorVersion = true;
insert cv;
contentVersion is inserted successfully and I was able to download the image. However the image is not clear and look like it has been distorted. How do I store the original version of the file.