---
title: "java: BufferedImage.setRGB()"
type: "forum-thread"
url: "https://www.webforum.nu/amne/java/102303-java-bufferedimage-setrgb"
topic: "Java"
topic_url: "https://www.webforum.nu/amne/java"
author: "Niehls"
published: "2004-04-25T14:09:41.000Z"
updated: "2004-04-25T20:09:12.000Z"
replies: 11
views: 582
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/java/102303-java-bufferedimage-setrgb"
---

# java: BufferedImage.setRGB()

## #1 — Niehls, 2004-04-25T14:09Z

Hoppas jag hamnade i rätt forum nu. I vilket fall så undrar jag om någon här har erfarenhet av setRGB-metoden. problemet är att den tar tre värden som parametrar
setRGB(int x, int y, int rgb). Vad jag har är en matris med rgb-värden för alla pixlar (rgb-tripletter) och jag har slitit håret av mig med att försöka omvandla dessa värden till en int som man kan skicka till setRGB. Antar att den vill ha färgen i hex, men jag är inte sådär super på basomvandlingar. Undrar om någon här skulle kunna hjälpa mig med detta.

edit: hoppsan. såg nu att det fanns ett java-forum som jag inte hittat tidigare. \*ber om förflyttning

Permalänk: https://www.webforum.nu/p/102303

## #2 — Aleph_One, 2004-04-25T14:32Z

Tror nog att du ska kunna använda Color för att omvandla, den har konstruktor som tar rgb var för sig och har sen metoden getRGB();

```
img.setRGB(x,y,new Color(r,g,b).getRGB());
```

Permalänk: https://www.webforum.nu/p/1330422

## #3 — Niehls, 2004-04-25T14:53Z

haha.. tack min älskling. satt i bakfylleångest hela dagen igår och blev till slut förtvivlad.. försökte med alla slags konverteringar jag kunde komma på och hittade.
återigen, man tackar

Permalänk: https://www.webforum.nu/p/1330431

## #4 — Niehls, 2004-04-25T15:09Z

nu har jag däremot en annan fråga. Vad för slags färg är det jag får om jag använder det? Färgerna som genereras är avsevärt olik de som man får om man stoppar in värdena i t.ex. photoshop.

Permalänk: https://www.webforum.nu/p/1330435

## #5 — Aleph_One, 2004-04-25T16:06Z

Om du sätter in tex Color.RED.getRGB() blir det rött då?

Permalänk: https://www.webforum.nu/p/1330459

## #6 — Niehls, 2004-04-25T16:20Z

haha, nope.. lila
(0,0,0) blir blågrönt
(255,255,255) blir någon slags bisarr blandning av hudfärg och orange.
skumt

Permalänk: https://www.webforum.nu/p/1330469

## #7 — Aleph_One, 2004-04-25T16:35Z

Okej, visa lite kod så är det lättare att se vad som är fel.

har knackat ihop ett litet exempel som ritar rött.. iaf på min dator ;)

```
import java.awt.Color;
import java.awt.Graphics;
import java.awt.image.BufferedImage;

import javax.swing.JFrame;
import javax.swing.JPanel;

public class Test extends JPanel
{
	BufferedImage bi;

	public Test()
	{
		bi = new BufferedImage(300, 300, BufferedImage.TYPE_INT_ARGB);
	}

	public void paintComponent(Graphics g)
	{
		super.paintComponent(g);

		int tmp = this.getWidth() % 300;
		for (int i = 0; i < tmp; i++)
		{
			for (int k = 0; k < tmp; k++)
				bi.setRGB(i, k, Color.RED.getRGB());
		}

		g.drawImage(bi, 0, 0, null);
	}

	public static void main(String[] args)
	{
		JFrame f = new JFrame();
		f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		f.getContentPane().add(new Test());
		f.setSize(300, 300);
		f.setVisible(true);
	}
}
```

Permalänk: https://www.webforum.nu/p/1330477

## #8 — Niehls, 2004-04-25T17:10Z

Följande är en method i en klass (för att beräkna mandelbrot-fraktaler)
mandelbrotSet\[y\]\[x\] innehåller rgb-värden. 
Det som står nedan typ:
rgb\[0\] = 6\*mandelbrotSet\[y\]\[x\] är bara en temporär fullösning. 

```
    public void writeToFile(int[][] mandelbrotSet, String file) {
	int[] rgb = new int[3];
	BufferedImage image = new BufferedImage(mandelbrotSet.length, mandelbrotSet[0].length, BufferedImage.TYPE_INT_ARGB);
    	for(int y = 0; y < mandelbrotSet.length; y++) {
	    for(int x = 0; x < mandelbrotSet[y].length; x++) {
		rgb[0] = 6*mandelbrotSet[y][x];
		rgb[1] = mandelbrotSet[y][x];
		rgb[2] = 3*mandelbrotSet[y][x];
		image.setRGB(y,x,new Color(rgb[0],rgb[1],rgb[2]).getRGB());

		
	    }
	}
	try {
	    ImageIO.write(image, "jpeg", new File(file));
	} catch(IOException e) {
	    System.out.println("file could not be accessed");
	}
    }
```

det verkar ju som om det skulle vara när jag skriver filen som det blir fel (ditt exempel är rött även för mig)

Permalänk: https://www.webforum.nu/p/1330495

## #9 — Aleph_One, 2004-04-25T17:57Z

Denna koden skriven en röd bild. 
Använd typen TYPE_INT_RGB när du skriver till fil så ska det fungera bra.

```
BufferedImage bi = new BufferedImage(300, 300, BufferedImage.TYPE_INT_RGB);
int tmp = 300;

for (int i = 0; i < tmp; i++)
{
	for (int k = 0; k < tmp; k++)
		bi.setRGB(i, k, Color.RED.getRGB());
}

try
{
	ImageIO.write(bi, "jpg", new File("./out.jpg"));
}
catch (Exception e)
{
	e.printStackTrace();
}
```

Permalänk: https://www.webforum.nu/p/1330525

## #10 — Viktor, 2004-04-25T19:24Z

Tråd flyttad från "Java 2 Enterprise Edition"

/Viktor

Permalänk: https://www.webforum.nu/p/1330553

## #11 — Niehls, 2004-04-25T20:07Z

yes yes. tackar. nu funkar det finfint.. Resultatet finns att beskåda på [här](http://niehls.com/fractal.jpg)  om ngn är intresserad.

Permalänk: https://www.webforum.nu/p/1330568

## #12 — Viktor, 2004-04-25T20:09Z

Glöm inte att markera det svar som löste din fråga, klicka på "Acceptera som slutgiltigt svar" vid det inlägget :)

/Viktor

Permalänk: https://www.webforum.nu/p/1330570

---

Tråden på webben: https://www.webforum.nu/amne/java/102303-java-bufferedimage-setrgb
