Problema poza
Last Updated: Jun 24 2015 20:47, Started by
piramyd
, Jun 03 2015 10:25
·
0
#1
Posted 03 June 2015 - 10:25
Salut,
Am incercat in mai multe moduri sa incarc JPG-ul atasat la post, intr-un BufferImage si dup-aia sa-l salvez redimensionat. Nu merge nici sa-l salvez simplu, pentru ca nu se incarca cum trebuie: are alte culori. Poate cineva sa ma ajute? Daca il deschid in paint si il salvez tot ca JPG, merge. Nu inteleg care e faza. [ http://apps4glass.ro/x/Logo_1.jpg - Pentru incarcare in pagina (embed) Click aici ] Edited by piramyd, 03 June 2015 - 10:41. |
#2
Posted 03 June 2015 - 10:36
#3
Posted 03 June 2015 - 10:41
Da, parca ar fi pe 24 de biti in loc de 32, sau parca nu ar fi RGB, nush, parca ar fi YCbCr, habar nu am ce are.
Am incercat mai multe chestii. O sa o pun pe net si o sa pun link-ul aici. In windows image viewer merge, in paint merge, in brwser merge... Acum se vede? |
#4
Posted 03 June 2015 - 10:48
Bine, dar tu cum redimensionzi imaginea?
Edited by MarianG, 03 June 2015 - 10:48. |
#5
Posted 03 June 2015 - 11:27
la ce dimensiune vrei sa-l redimensionezi si in ce format?
|
#7
Posted 03 June 2015 - 11:47
Redimentionez la vreo 200x200 pixeli.
JPG sau PNG oricare e bun. Eu am fisierul intr-un array de byte. Problema e ca imi da eroare la ultima linie "unknown format" daca citesc asa: ImageInputStream stream = null; ImageReader reader = null; BufferedImage result = null; try { stream = ImageIO.createImageInputStream(new ByteArrayInputStream(data)); reader = ImageIO.getImageReaders(stream).next(); reader.setInput(stream, true); ImageReadParam param = reader.getDefaultReadParam(); ImageTypeSpecifier typeToUse = null; for (Iterator<?> i = reader.getImageTypes(0); i.hasNext();) { ImageTypeSpecifier type = (ImageTypeSpecifier) i.next(); if (type.getColorModel().getColorSpace().isCS_sRGB()) { typeToUse = type; } } if (typeToUse != null) { param.setDestinationType(typeToUse); } try{ result = reader.read(0, param); Deci incerc sa citesc asa: RenderedOp source = JAI.create("stream", new ByteArraySeekableStream(data)); ((OpImage)source.getRendering()).setTileCache(null); BufferedImage temp = source.getAsBufferedImage();iar aici o citeste, dar are alte culori. |
#9
Posted 24 June 2015 - 20:47
Din cate vad problema este cu jpeg-ul respectiv (nu este intr-un format suportat de clasele standard din Java).
Incearca o alta imagine (una intr-un format standard cu codul urmator) si ar trebui sa mearga (atat cu decoderul din pachetele de SUN cat si cu liniile comentate ImageIO): public static void main(String[] args) throws Exception { BufferedImage image = loadImageFromFile("path\\Logo_1.jpeg"); BufferedImage resizedImage = resizeImage(image, 1333 / 2, 589 / 2); saveImageToFile(resizedImage, "path\\Logo_2.jpg"); } private static void saveImageToFile(BufferedImage resizedImage, String filePath) { try (OutputStream outputStream = new BufferedOutputStream(new FileOutputStream(filePath))) { //ImageIO.write(resizedImage, "JPEG", outputStream); JPEGCodec.createJPEGEncoder(outputStream).encode(resizedImage); } catch (IOException e) { throw new RuntimeException("Failed to save image tp file " + filePath, e); } } public static BufferedImage loadImageFromFile(String filePath) { try (InputStream inputStream = new BufferedInputStream(new FileInputStream(filePath))) { //return ImageIO.read(inputStream); return JPEGCodec.createJPEGDecoder(inputStream).decodeAsBufferedImage(); } catch (IOException e) { throw new RuntimeException("Failed to load image from file " + filePath, e); } } public static BufferedImage resizeImage(BufferedImage originalImage, int scaledWidth, int scaledHeight) { BufferedImage resizedImage = new BufferedImage(scaledWidth, scaledHeight, originalImage.getType()); Graphics2D graphics = resizedImage.createGraphics(); graphics.drawImage(originalImage, 0, 0, scaledWidth, scaledHeight, null); graphics.dispose(); return resizedImage; } Totusi cu imaginea ta nu va merge, poate te ajuta urmatorul link (aparent e aceeasi problema) http://stackoverflow...132556#12132556 |
Anunturi
Bun venit pe Forumul Softpedia!
▶ 0 user(s) are reading this topic
0 members, 0 guests, 0 anonymous users