Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > de.comp.lang.java > #12902
| Path | csiph.com!weretis.net!feeder4.news.weretis.net!hirsch.in-berlin.de!.POSTED!not-for-mail |
|---|---|
| From | Peter <peter@localhost.com> |
| Newsgroups | de.comp.lang.java |
| Subject | Java ImageIO; mal lahm, mal flott |
| Date | Fri, 15 Jan 2016 20:08:13 +0100 |
| Organization | Individual Network Berlin e.V. |
| Lines | 67 |
| Message-ID | <1452884893.626603@alpaka.in-berlin.de> (permalink) |
| NNTP-Posting-Host | alpaka.in-berlin.de |
| Mime-Version | 1.0 |
| Content-Type | text/plain; charset=utf-8 |
| Content-Transfer-Encoding | 8bit |
| X-Trace | hirsch.in-berlin.de 1452884893 4239 85.214.46.247 (15 Jan 2016 19:08:13 GMT) |
| X-Complaints-To | usenet@hirsch.in-berlin.de |
| NNTP-Posting-Date | Fri, 15 Jan 2016 19:08:13 +0000 (UTC) |
| User-Agent | Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.5.1 |
| X-Mozilla-News-Host | news://news.vr.in-berlin.de:119 |
| X-Enigmail-Draft-Status | N1110 |
| Cache-Post-Path | alpaka.in-berlin.de!unknown@p5ddb952e.dip0.t-ipconnect.de |
| X-Cache | nntpcache 3.0.1 (see http://www.nntpcache.org/) |
| Xref | csiph.com de.comp.lang.java:12902 |
Show key headers only | View raw
Hallo,
hier habe ich eine große Menge jpeg-Images (ca. 3k), von denen ich für
die Weiterverarbeitung ihre Größe benötige.
Der Helfer in allen Lebenslagen heißt stackoverflow, und da findet sich
folgende viel versprechende Lösung:
http://stackoverflow.com/questions/672916/how-to-get-image-height-and-width-using-java
"Here is something very simple and handy.
BufferedImage bimg = ImageIO.read(new File(filename));
int width = bimg.getWidth();
int height = bimg.getHeight();"
Funktioniert tatsächlich; hat nur einen schweren Nachteil:
Diese "Löschung" dauert eeeeeehhhhhhhhwig!
Ca. 10 Sekunden für ein Image!
Ich habe nämlich nicht nur viele Images, sie sind auch recht groß (8k x
8k); insgesamt ca. 50GB.
Wiedermal eine OO-Sternstunde: Es wird ein 10 Tonnen schweres Objekt
instanziiert, nur um es dann nach seine Größe zu fragen :-(
Aber wenn man bei obiger Website etwas nach unten scrollt, findet man
noch einen Vorschlag:
/**
* Gets image dimensions for given file
* @param imgFile image file
* @return dimensions of image
* @throws IOException if the file is not a known image
*/
public static Dimension getImageDimension(File imgFile) throws IOException {
int pos = imgFile.getName().lastIndexOf(".");
if (pos == -1)
throw new IOException("No extension for file: " +
imgFile.getAbsolutePath());
String suffix = imgFile.getName().substring(pos + 1);
Iterator<ImageReader> iter = ImageIO.getImageReadersBySuffix(suffix);
if (iter.hasNext()) {
ImageReader reader = iter.next();
try {
ImageInputStream stream = new FileImageInputStream(imgFile);
reader.setInput(stream);
int width = reader.getWidth(reader.getMinIndex());
int height = reader.getHeight(reader.getMinIndex());
return new Dimension(width, height);
} catch (IOException e) {
log.warn("Error reading: " + imgFile.getAbsolutePath(), e);
} finally {
reader.dispose();
}
}
throw new IOException("Not a known image file: " +
imgFile.getAbsolutePath());
}
Und siehe da, alles flutscht quasi in Nullzeit.
Noch weiter unten hat sich jemand gefunden, der die Performanz der
verschiedenen Ansätze miteinander verglichen hat; da lernt man, dass die
durchaus um den Faktor 200(!) auseinander liegen.
Vielleicht ist das auch der Grund, warum der Geoserver so grottenlahm ist...
Back to de.comp.lang.java | Previous | Next — Next in thread | Find similar
Java ImageIO; mal lahm, mal flott Peter <peter@localhost.com> - 2016-01-15 20:08 +0100 Re: Java ImageIO; mal lahm, mal flott Thomas Richter <thor@math.tu-berlin.de> - 2016-01-21 10:40 +0100
csiph-web