"We are back" « oc.at

flächeninhalt einer vektordatei

LeadToDeath 14.08.2006 - 15:12 913 6
Posts

LTD

frecher fratz
Avatar
Registered: Feb 2001
Location: is where it is
Posts: 6334
hallo leute ... ich hab folgendes problem:
eine vektordatei - aber keinen flächeninhalt davon. wie rechne ich jetzt aus, wieviel flächeninhalt die datei einschließt (es geht um einen red-bull-bullen) ... mit integral und co werde ich zum schwammerl (abgesehen davon das ich ein mathegenie bin und keine funktionen hab)

ja thx erstmal

gue

Addicted
Avatar
Registered: Feb 2003
Location: Linz
Posts: 400
Ich nehme an, du meinst eine Vektorgrafik?
Wenn ja, dann probier es mit einem Monte-Carlo-Algorithmus.
Wenn's nicht so genau sein muss, dann rastere das Ding einfach und tu Pixelzählen ;)

LTD

frecher fratz
Avatar
Registered: Feb 2001
Location: is where it is
Posts: 6334
haja das mit den pixeln is ne super idee ... und jetzt kommt die super frage: wie zähl ich alle nicht transparenten pixel in nem dokument???

Spikx

My Little Pwny
Avatar
Registered: Jan 2002
Location: Scotland
Posts: 13496
Hm.. Summe aller Pixel - Summe aller Histogrammbalkenwerte = Summe der transparenten Pixel, oder?
Nächste Frage ist wahrscheinlich, mit welchem Programm man die Werte der Histogrammbalken ablesen kann.. weil i find im Photoshop nix diesbezüglich :D

gue

Addicted
Avatar
Registered: Feb 2003
Location: Linz
Posts: 400
Das könnte man z.B. mit diesem schönen kleinen Java-Programm machen:
Code:
import javax.imageio.*;
import java.awt.image.*;
import java.io.*;

class PixelCounter {
	public static int countNonOpaquePixels(BufferedImage b) {
		int cnt = 0;
		for (int y = 0; y < b.getHeight(); y++) {
			for (int x = 0; x < b.getWidth(); x++) {
				if ((b.getRGB(x, y) & 0xff) != 0xff) {
					cnt++;
				}
			}
		}
		return cnt;
	}

	public static void main(String[] args) throws Exception {
		BufferedImage b = ImageIO.read(new File(args[0]));
		System.out.println("Pixels: " + countNonOpaquePixels(b));
	}
}

LTD

frecher fratz
Avatar
Registered: Feb 2001
Location: is where it is
Posts: 6334
ja vollkuhl und wie führ ich das teil aus? und woher weiß er welches bild gemeint is mit buffered image???

murcielago

Dr. Doom
Avatar
Registered: Oct 2002
Location: *
Posts: 2698
schreibst den code von oben in die Datei PixelCounter.java, lädst dir von sun.java.com das j2se sdk runter, gehst in die commandline, machst

Code:
javac PixelCounter.java

dann hast eine class-datei, die du so ausführst:

Code:
java PixelCounter <filename>

wobei <filename> die datei ist.
Kontakt | Unser Forum | Über overclockers.at | Impressum | Datenschutz