Ana içeriğe atla

browserdan response ile resim basmak

resim dosyalarını eger başka bir http serverdan alıyorsanız default olarak



url = new URL(cmFullPath);
conn = url.openConnection();
in = (InputStream) conn.getInputStream();
BufferedImage image =ImageIO.read(in);
ImageIO.write(image,"jpg",response.getOutputStream());
response.getOutputStream().flush();


dersiniz yazar.

ancak eger http server size gif veya jpeg veya tiff gonderiyorsa o zaman tiffleri ayırmanız gerekir



response.setContentType("image/jpeg");
response.setHeader("Cache-Control","no-cache"); //HTTP 1.1
response.setHeader("Pragma","no-cache"); //HTTP 1.0
response.setDateHeader ("Expires", 0); //prevents caching at the proxy server

url = new URL(cmFullPath);
conn = url.openConnection();

String fileType = conn.getContentType().toLowerCase();
in = (InputStream) conn.getInputStream();

if (fileType.indexOf("tiff")>-1){
RenderedImage image = ImageUtility.convertTifToJpg(in);
ImageIO.write(image, "jpg", response.getOutputStream());
}else{
writeDirect(in, response.getOutputStream());
}



her ne kadar http den inputStream çeksekte buradan kurulacak connection da mimetype bulunur burdan hareketle ayrıştırma yapabiliriz.

diyelim ayrıştırdık nasıl convert edecez , hemen şöyle;



TIFFDecodeParam decodeParam = new TIFFDecodeParam();
ImageDecoder imageDecoder = TIFFCodec.createImageDecoder("TIFF", inputStream, decodeParam);
RenderedImage renderedImage = imageDecoder.decodeAsRenderedImage();



burda en önemli konu eger bi şekilde inputstream ile oynamanız gerekirse artık kullanılamaz şekle geldigi. bir kere converter bulaştımı biraz ugraştırıyor

Yorumlar