Color JPG image saved by imwrite() incompatible with Web Browser.

1 Ansicht (letzte 30 Tage)
Protik Maitra
Protik Maitra am 21 Okt. 2011
Bearbeitet: DGM am 29 Dez. 2023
Hello There,
I am trying to read a file from the server and display on the webpage using JSP. The file is created using imwrite(). I have tried .jpg and .png. I have tried grayscale (8-bit depth) and color (24-bit depth). I have tried on Internet Explorer and Google Chrome. Nothing works and the image is not displayed. I have no problems displaying images downloaded from the internet.
I presume there is something in the file format that is causing all this problem. If required, I could email two .jpg file, one that works fine and the other that does not.
The MATLAB code used to create this image is:
imwrite(g,'../image/image.jpg');
Please help.
Thanks and Regards.
JSP code below:
<!DOCTYPE html>
<%@ page import="java.util.*" %>
<%@ page import="java.util.Calendar" %>
<%@ page import="java.io.File" %>
<%@ page import="java.io.*" %>
<%@ page language="java" import="java.util.*"%>
<head>
<script language="JavaScript">
var refreshImageFlag;
function refreshFlagEnable(){
refreshImageFlag = true;
}
function refreshFlagDisable(){
refreshImageFlag = false;
}
function refreshIt() {
if (!document.images) return;
if(refreshImageFlag == true){
tmp = new Date();
document.images['myCam'].src = "C:\\WebDev\\uploads\\image\\image.jpg" + "?" + tmp.getTime();
}
}
</script>
</head>
<BODY onLoad="setInterval('refreshIt()',1000);">
<<C---WebDev--uploads--image--image.jpg>>
<FORM NAME="form1" METHOD="POST">
<input type="button" value="StartRefresh" onclick="refreshFlagEnable();"/>
<input type="button" value="StopRefresh" onclick="refreshFlagDisable();"/>
</FORM>
<<C---WebDev--uploads--image--image.jpg>>
</BODY>

Antworten (2)

Walter Roberson
Walter Roberson am 21 Okt. 2011
Doesn't your IMG SRC have to start with file:/// for a local file? As in
img src="file:///C:\WebDev\uploads\image\image.jpg"
  9 Kommentare
Protik Maitra
Protik Maitra am 26 Okt. 2011
Verschoben: Rena Berman am 28 Dez. 2023
Trial 1: Did not work.
>> imwrite(g,'image.jpg','Mode','lossless');
>> info = imfinfo('image.jpg');
>> info
info =
Filename: 'image.jpg'
FileModDate: '26-Oct-2011 15:20:05'
FileSize: 146519
Format: 'jpg'
FormatVersion: ''
Width: 260
Height: 170
BitDepth: 24
ColorType: 'truecolor'
FormatSignature: ''
NumberOfSamples: 3
CodingMethod: 'Huffman'
CodingProcess: 'Lossless'
Comment: {}
Trial 2: Did not work.
>> imwrite(g,'image.jpg','Quality',100);
>> info = imfinfo('image.jpg');
>> info
info =
Filename: 'image.jpg'
FileModDate: '26-Oct-2011 15:21:16'
FileSize: 92342
Format: 'jpg'
FormatVersion: ''
Width: 260
Height: 170
BitDepth: 24
ColorType: 'truecolor'
FormatSignature: ''
NumberOfSamples: 3
CodingMethod: 'Huffman'
CodingProcess: 'Sequential'
Trial 3: Did not work.
>> imwrite(g,'image.jpg','Mode','lossless','Quality',100);
>> info = imfinfo('image.jpg');
>> info
info =
Filename: 'image.jpg'
FileModDate: '26-Oct-2011 15:40:27'
FileSize: 146519
Format: 'jpg'
FormatVersion: ''
Width: 260
Height: 170
BitDepth: 24
ColorType: 'truecolor'
FormatSignature: ''
NumberOfSamples: 3
CodingMethod: 'Huffman'
CodingProcess: 'Lossless'
Comment: {}
Trial 4: Did not work.
>> imwrite(g,'image.jpg','Quality',94);
>> info = imfinfo('image.jpg');
>> info
info =
Filename: 'image.jpg'
FileModDate: '26-Oct-2011 15:27:41'
FileSize: 51299
Format: 'jpg'
FormatVersion: ''
Width: 260
Height: 170
BitDepth: 24
ColorType: 'truecolor'
FormatSignature: ''
NumberOfSamples: 3
CodingMethod: 'Huffman'
CodingProcess: 'Sequential'
Comment: {}
Trial 5: Did not work.
>> imwrite(g,'image.jpg','Quality',93);
>> info = imfinfo('image.jpg');
>> info
info =
Filename: 'image.jpg'
FileModDate: '26-Oct-2011 15:28:19'
FileSize: 48214
Format: 'jpg'
FormatVersion: ''
Width: 260
Height: 170
BitDepth: 24
ColorType: 'truecolor'
FormatSignature: ''
NumberOfSamples: 3
CodingMethod: 'Huffman'
CodingProcess: 'Sequential'
Comment: {}
Note trials 4 and 5: With quality 94, filesize is 51299; with quality 93, filesize is 48214; and internet sourced file that works has filesize 50434.
Sorry it probably looks like i am spamming this page, but I want to present as much information as possible.
Protik Maitra
Protik Maitra am 26 Okt. 2011
Verschoben: Rena Berman am 28 Dez. 2023
I tried imwrite() with <'mode', 'lossless'> as well as <'Quality', 100>. No success. I will continue to look into this. If you think of any possibilities or things I should look into, that might crop up in your mind, please do let me know. Thank you for your help so far.
-Regards-

Melden Sie sich an, um zu kommentieren.


Richard Zapor
Richard Zapor am 20 Dez. 2011
The array may be lacking the full data structure. The site http://radio.feld.cvut.cz/matlab/techdoc/printing/export21.html gives a method for establishing the structure and then using imwrite to produce a valid jpg.
figure;imagesc(data) I = getframe(gcf); imwrite(I.cdata, 'myplot.jpg', 'Quality', 50);

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by