Skip to content

Commit ba7764b

Browse files
committed
support jpeg output in image tab
1 parent 719ef8b commit ba7764b

File tree

1 file changed

+14
-6
lines changed

1 file changed

+14
-6
lines changed

src/webviews/imagePreview.ts

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -23,14 +23,14 @@ export default class ImagePreviewWebview {
2323
console.log("detect images in data with method" + doNotCheckBase64 ? "flat and start" : "regexp")
2424
let imageList: String[] = [];
2525
if (doNotCheckBase64) {
26-
//fast method. parse the json, look for strings starting with data:image/png;base64,
26+
//fast method. parse the json, look for strings starting with data:image/png;base64 or data:image/jpeg;base64,
2727
let objlist = JSON.parse(data);
2828
imageList = objlist.filter((v: any) => {
29-
return ((typeof (v) === 'string') && (String(v).startsWith("data:image/png;base64,")));
29+
return ((typeof (v) === 'string') && ((String(v).startsWith("data:image/png;base64,") || String(v).startsWith("data:image/jpeg;base64,"))));
3030
})
3131
} else {
3232
//slow method. carefully look for images with a regexp
33-
let imgb64Pattern: string = '"(data:image\/png;base64,(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?)"';
33+
let imgb64Pattern: string = '"(data:image\/(png|jpeg);base64,(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?)"';
3434
let re = RegExp(imgb64Pattern, 'g');
3535
let match: RegExpMatchArray | null;
3636
imageList = [];
@@ -68,7 +68,11 @@ export default class ImagePreviewWebview {
6868
imageList.forEach((image: String) => {
6969
htmlContent += `<h2>Image ${imgcounter} </h2>`
7070
htmlContent += `<img src="${image}" /><br/>`
71-
htmlContent += `<input type="button" class="imgsavebutton" value="Save Image ${imgcounter}..." onClick="saveimg('${image}')"/>`
71+
if (image.startsWith("data:image/png;base64,")) {
72+
htmlContent += `<input type="button" class="imgsavebutton" value="Save Image ${imgcounter}..." onClick="saveimgpng('${image}')"/>`
73+
} else if (image.startsWith("data:image/jpeg;base64,")) {
74+
htmlContent += `<input type="button" class="imgsavebutton" value="Save Image ${imgcounter}..." onClick="saveimgjpg('${image}')"/>`
75+
}
7276
//link test 1
7377
imgcounter++;
7478
})
@@ -95,12 +99,16 @@ export default class ImagePreviewWebview {
9599
return blob;
96100
}
97101
98-
function saveimg(base64image) {
102+
function saveimgpng(base64image) {
99103
b=dataURItoBlob(base64image);
100104
d=new Date();
101105
saveAs(b,"Warp 10-Processing Image-" + d.toISOString() + ".png")
102106
}
103-
107+
function saveimgjpg(base64image) {
108+
b=dataURItoBlob(base64image);
109+
d=new Date();
110+
saveAs(b,"Warp 10-Processing Image-" + d.toISOString() + ".jpg")
111+
}
104112
</script>
105113
106114
</br>stack bottom</body>`

0 commit comments

Comments
 (0)