ERLEDIGT
NEIN
NEIN
ANTWORTEN
7
7
ZUGRIFFE
715
715
EMPFEHLEN
-
08.06.05 21:39 #1coolerouny Tutorials.de Gastzugang
morgen!
ich wollte euch fragen ob wer ein example hat; wo ein sprite gezeichnet wird, aber so dass man den umriss nicht sieht
d.h wenn man im paint irgendwo im bild einen kreis zeichnet, dass dann beim gezeichneten bild in der applikation dann nur der kreis is und nicht der weiße(oder irgendeine farbe) rest.
hab schon überrall auf google gschaut da hams irgendwie auch nix
mfg
coolerouny!
-
08.06.05 21:57 #2
- Registriert seit
- Jun 2002
- Ort
- Saarbrücken (Saarland)
- Beiträge
- 9.724
- Blog-Einträge
- 29
Hallo!
am einfachsten ist es, wenn du das "sprite" nicht mit Paint sondern beispielsweise mit Paint Shop pro erstellst, den Hintergrund transparent machst und das ganze als gif oder png speicherst. Eine andere Möglichkeit bestünde darin für alle Sprites eine bestimmte Farbe als Transaprent zu definieren und die später geladenen Bilder mittels eines ImageFilters so zu bearbieten, dass die "bestimmte" Farbe den höchsten Transparenzwert erhält.
Gruß TomJava rocks!
How to become a good Java Programmer?
Does IT in Java and .Net
The only valid measurement of code quality: WTFs / minute
Blog
Xing
Twitter
-
08.06.05 22:06 #3coolerouny Tutorials.de Gastzugang
morgen!
kann ich vl irgendwie abfragen welche farbe ein einzelner pixel eines bildes hat (also zb der ganz oben links)
und dann alle die die gleiche farbe haben zeichnet man nicht?
mfg
coolerouny
-
08.06.05 22:17 #4
- Registriert seit
- Jun 2002
- Ort
- Saarbrücken (Saarland)
- Beiträge
- 9.724
- Blog-Einträge
- 29
Hallo!
Ja. Die Klasse BufferedImage bietet beispielsweise die Methode
int getRGB(int x, int y)
Weiterhin könntest du dann mit einem java.awt.image.RGBImageFilter deine Transparenzaktion implementieren. Aber wie gesagt, der weg über transparente png's bzw. gif's ist viiiiiiel einfacher...
Gruß TomJava rocks!
How to become a good Java Programmer?
Does IT in Java and .Net
The only valid measurement of code quality: WTFs / minute
Blog
Xing
Twitter
-
10.06.05 02:03 #5
Ich hab hier ein Beispiel aus einem Spiel, wo ich eben transparente *.gif's verwendet habe.
Also hier wird Hintergrund (bg rED, gREEN, bLUE) und Vodergrund(fg r, g, b) berechnet.
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14
int bg_r = (super._pxl[idx + pos] >> 16) & 0xFF; int bg_g = (super._pxl[idx + pos] >> 8) & 0xFF; int bg_b = (super._pxl[idx + pos] >> 0) & 0xFF; int fg_a = (pxl[idx] >> 24) & 0xFF; int fg_r = (pxl[idx] >> 16) & 0xFF; int fg_g = (pxl[idx] >> 8) & 0xFF; int fg_b = (pxl[idx] >> 0) & 0xFF; bg_r += ((fg_r - bg_r) * fg_a + fg_r) >> 8; bg_g += ((fg_g - bg_g) * fg_a + fg_g) >> 8; bg_b += ((fg_b - bg_b) * fg_a + fg_b) >> 8; super._pxl[idx + pos] = new Color(bg_r, bg_g, bg_b).getRGB();
Und hier meine Sprite-Klasse:
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
class Sprite { private int pxl[]; private int width; private int height; Sprite() { } Sprite(Image img) { width = img.getWidth(null); height = img.getHeight(null); pxl = new int[getWidth() * getHeight()]; PixelGrabber pg = new PixelGrabber(img, 0, 0, width, height, pxl, 0, width); try { pg.grabPixels(); } catch(InterruptedException e) { } } public int[] getPixels() { return pxl; } public int getWidth() { return width; } public int getHeight() { return height; } }Fann Ég Fjalli Fallega Steina
Faldi Dá Alla Vildi Deim Leyna
Huldi Dar Hellisskúta Heillasteina
Alla Mína Una eth slegu Óskasteina
-
10.06.05 17:50 #6
- Registriert seit
- Jun 2002
- Ort
- Saarbrücken (Saarland)
- Beiträge
- 9.724
- Blog-Einträge
- 29
Hallo!
Wär's nicht einfacher von Anfang an transparente Gif's / Pngs zu verwenden?
Gruß TomJava rocks!
How to become a good Java Programmer?
Does IT in Java and .Net
The only valid measurement of code quality: WTFs / minute
Blog
Xing
Twitter
-
11.06.05 00:26 #7
Bezieht sich das jetzt auch auf mein Programm-Schnipsel? Ich hatte nämlich ein Transparentes *.gif, aber aus irgendeinem unerklärlichen Grund wurde es bei der Darstellung mit drawImage nicht transparent gezeichnet... deshalb musste ich es sozusagen berechnen. Aber ich kann nicht viel dazu sagen, ist schon lange her...
Fann Ég Fjalli Fallega Steina
Faldi Dá Alla Vildi Deim Leyna
Huldi Dar Hellisskúta Heillasteina
Alla Mína Una eth slegu Óskasteina
-
11.06.05 11:29 #8
- Registriert seit
- Jun 2002
- Ort
- Saarbrücken (Saarland)
- Beiträge
- 9.724
- Blog-Einträge
- 29
Hallo!
Schau mal hier:
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79
/** * */ package de.tutorials; import java.awt.Color; import java.awt.Graphics2D; import java.awt.image.BufferStrategy; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; import javax.imageio.ImageIO; import javax.swing.JFrame; /** * @author Tom * */ public class TransparencyExample extends JFrame { BufferStrategy strategy; Thread runner = new Thread() { public void run() { BufferedImage img = null; try { img = ImageIO.read(new File( "c:/tutorials_logo.png")); } catch (IOException e1) { e1.printStackTrace(); } int i = 0; while (true) { Graphics2D g = (Graphics2D)strategy.getDrawGraphics(); g.clearRect(0,0,320,100); if(i % 2 == 0){ i++; g.setColor(Color.RED); }else{ i--; g.setColor(Color.BLUE); } g.fillRect(0,0,320,240); g.drawImage(img,0,30,null); g.dispose(); strategy.show(); try { sleep(500); } catch (InterruptedException e) { e.printStackTrace(); } } } }; public TransparencyExample() { super("TransparencyExample"); setDefaultCloseOperation(EXIT_ON_CLOSE); setSize(320, 100); setVisible(true); createBufferStrategy(2); strategy = getBufferStrategy(); setIgnoreRepaint(true); runner.start(); } /** * @param args */ public static void main(String[] args) { new TransparencyExample(); } }
Gruß TomJava rocks!
How to become a good Java Programmer?
Does IT in Java and .Net
The only valid measurement of code quality: WTFs / minute
Blog
Xing
Twitter
Ähnliche Themen
-
Wie speichert man ein Bild mit transparentem Verlauf und transparentem Hintergrund?
Von jaisan im Forum PhotoshopAntworten: 1Letzter Beitrag: 07.06.10, 22:35 -
Kreis mit Stroke und transparentem Hintergrund zeichnen
Von Thomas D im Forum PhotoshopAntworten: 4Letzter Beitrag: 27.05.07, 15:01 -
Wie erstelle ich Sprites?
Von n00ki3 im Forum SmalltalkAntworten: 1Letzter Beitrag: 10.07.06, 13:49 -
sprites zeichnen
Von coolerouny im Forum JavaAntworten: 6Letzter Beitrag: 08.04.05, 18:16 -
Sprites in Java
Von Souldrinker2004 im Forum JavaAntworten: 2Letzter Beitrag: 06.02.05, 15:16





Zitieren

Login




