webForumDet fria alternativet

Hur kan man få fram storleken på bilderna i ett bibliotek?

Java

3 svar · 409 visningar · startad av i95matjo

Medlem sedan dec. 20016 inlägg
Frågan#1

Jag har ett stort antal gif och jpg filer på en server som jag skulle vilja få fram storleken (höjd och bredd i pixels) på.
Om man högerklickar på en bild i Windows och väljer properties så går det att se just detta. Denna info skulle jag vilja komma åt på alla filerna på servern och sedan skapa en lista med filnamn och storlek (bredd och höjd).

Det optimala programmet skulle innehålla en 'browse'knapp där man väljer vilken folder som skall genomsökas - och sedan genereras det en textfil med filnamn och storlek på gif och jpg bilderna i den foldern.

Kan någon hjälpa mig?

/Mattias

Medlem sedan sep. 2001961 inlägg
#2

Ganska enkelt egentligen...

Öppna katalogen och ta fram alla filer som uppfyller ett visst filter [*gif|*jpg]. Enklast med File.list(FileNameFilter filter).

Stega sedan igenom den listan och öppna varje bild med Toolkit.createImage(Filename). Med detta bildobjekt kan du sedan plocka fram de uppgifter du vill ha.

/Lime

------------------
Praeterea conseo microsoftenem esse delendam.
- modernt latinskt ordspråk

Medlem sedan dec. 20016 inlägg
#3

Tack Lime.

Det var dock ett tag sedan som jag programmerade java.

Har du någon form av .java som innehåller grundstommen till ett liknande program, #include, main()..., etc.
Det skulle göra att jag kan komma igång otroligt mycket snabbare än om jag måste börja från scratch.

Vänligen

/Mattias

Medlem sedan apr. 20007 588 inlägg
#4

Här har du en grundstomme, kollandet av bildernas dimensioner får du lägga till själv:

<font size="1" face="Verdana, Arial, Helvetica, sans-serif">Kod:<font size="1" face="Verdana, Arial, Helvetica, sans-serif" color="#666600">package bar.foo;
import java.util.*;
import java.io.*;
import java.awt.*;

public class PicList {

public static void main(String\[\] args) {

	if (args.length \< 1) {
		System.err.println("Usage: PicList \<path\>");
		return;
	}

	PicList pl = new PicList();
	pl.listPictures(args\[0\]);	
}

public void listPictures(String path) {

	System.out.println("Listing contents in "+path);
	Vector result = new Vector();

	File f = new File(path);
	String\[\] fileList = f.list(new FilenameFilter() {
		public boolean accept(File dir, String name) {
			return (name.endsWith(".jpg") &#0124;&#0124; name.endsWith(".gif"));
		}
	});

	for (int i=0; i\<fileList.length; i++) {
		System.out.println("Här skall du kolla dimensionen på --\>"+fileList);
	}	

}

}

------------------
det finns ingen.info tillgänglig.

"inside every human being there's an american trying to get out".

284 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
128 ms — deklarationer (db)
0 ms — hämta statistik (cache)
153 ms — hämta tråd, inlägg och bilagor (db)
127 ms — ändringar (db)