pixelkép készítés

Fórumok

Szeretnék böngészőben egy olyan felületet csinálni, ahol egyszerű pixelképet lehessen csinálni pl 8x8 pixelből, egy pixel vagy fekete vagy fehér lehet.
Sajnos sehol nem találtam egyszerü dolgot erre, igazából a pixel kirajzolással vennek gondjaim, a klikkelés, tömb feltöltés, post-olás nem gond.
Nem tudok valahogy képet csin, ami változik.
Ebben kérem segítségeteket.

Hozzászólások

Hát, hirtelen ötlet, akár működhet is:


<div>
<span id="a1"><span id="a2"><span id="a3">...<span id="a8">
<span id="b1"><span id="b2"><span id="b3">...<span id="b8">
.
.
.
</div>


style.css
---------
span
{
  height:1px;
  width:1px;
}

Majd
document.getElementById['a1'].style.color=szin;

Hajrá!

--
Debian - The "What?!" starts not!
http://nyizsa.uni.cc


<html>
<head>
<style>
.geza {
        position: absolute;
        height: 20px;
        width: 20px;
}
</style>
<script>
function paint(){
        colorize('a1','red',10,10);
        colorize('a2','yellow',10,30);
        colorize('b1','green',30,10);
        colorize('b2','blue',30,30);
}

function colorize(id,color,x,y){
        if(document.getElementById || document.all){
                obj=document.getElementById(id);
                }
      //  ie6
        if(document.layers){
                obj=document.layers[id];
                }
        obj.style.backgroundColor=color;
        obj.style.top=x;
        obj.style.left=y;

}

</script>
</head>
<body onload=paint();>
<div class=geza id=a1> </div><div class=geza id=a2> </div>
<div class=geza id=b1> </div><div class=geza id=b2> </div>
</body>
</html>

értelem szerűen fogod és a style-nál átírod 1x1 pixelre, és ehhez képest ugye átírod az x és y koordinátákat is. Persze ha szépen akarod csinálni, akkor inkább bevezetsz egy változót, ami megmondja milyen széles és magas legyen a cella, majd a paint függvényben a mátrix cella indexeit használod (pl. 1,1 meg 1,2 meg 2,1 és 2,2), aztán a colorize függvényben *side-olod a top és a left értékeket. Természetesen parseInt-elni kell őket.

éretelem szerűen a style width és height értéke lesz a side értéke.


...
<script>
var side=20;
...
function paint(){
        colorize('a1','red',1,1);
        colorize('a2','yellow',1,2);
...
       obj.style.top=parseInt(x*side);
        obj.style.left=parseInt(y*side);
...

Van ilyen object, hogy canvas, de ez IE-ben asszem nem megy.

<html>
<head>
<script type="text/javascript">
	function draw() {
		var canvas = document.getElementById("canvas");
		var ctx = canvas.getContext("2d");
		var imd = ctx.getImageData(0,0,8,8);
		
		imd.data[0]=127;
		imd.data[1]=127;
		imd.data[2]=127;
		imd.data[3]=255;
		
		ctx.putImageData(imd,0,0);
	}
</script>
</head>
<body onload="draw()">
	<canvas id="canvas" width="8" height="8"></canvas>
</body>
</html>

JButton-okkal.nem tudom,mennyire szabályos megoldás,eléggé kezdő vagyok.

import java.awt.event.*; //az actionlisetener-hez
import java.awt.Color;//a színekhez
import javax.swing.*;

class the_8x8_color_switch extends JPanel
{

public the_8x8_color_switch()
{
super();
this.setSize(800,600);

int i=0,j=0;
JButton[][] buttons;
buttons=new JButton[8][8];
for (i=0;i<8;i++)
{
for (j=0;j<8;j++)
{
buttons[i][j]=new JButton();
buttons[i][j].setBounds((i+1)*10,(j+1)*10,10,10);//első kettő a pozíció,második kettő a méret
buttons[i][j].setBackground(Color.WHITE);
buttons[i][j].addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
JButton hivo=((JButton)e.getSource());
if (hivo.getBackground()==Color.WHITE) hivo.setBackground(Color.BLACK);
else
if (hivo.getBackground()==Color.BLACK) hivo.setBackground(Color.WHITE);
}
}
);
this.add(buttons[i][j]);
}
}
this.setLayout(null);
}

static public void main (String[] arg)
{
the_8x8_color_switch pelda=new the_8x8_color_switch();
JFrame ablak=new JFrame();
ablak.setSize(800,600);
ablak.setLayout(null);//ez miatt nem lesznek a gombok szétterülősek
ablak.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//ettől csukódik be az ablak,ha az "x"-re kattintasz.

ablak.add(pelda);
ablak.setVisible(true);

}

}