Forum: Mikrocontroller und Digitale Elektronik Bitmap nach TFT Converter


von r5g6b5 (Gast)


Lesenswert?

Hallo,
für diese 128x64 Pixel LCDs gibts ja Programme, die eine Bitmap Grafik 
in ein *.C File wandeln, so dass man direkt die Gafik auf das Display 
kopieren kann.

Ich such sowas für ein 320x240Pixel TFT. In Farbe. Eine Bitmap/PNG 
Grafik soll in das R5G6B5 Format gewandelt werden, damit ich die Datei 
mit kompilieren kann und einen Startbildschirm habe.

Gibts doch bestimmt schon!?

Ich finde leider nichts.

von r5g6b5 (Gast)


Lesenswert?

So. Habs doch recht schnell hinbekommen. in HTML5
1
<!DOCTYPE html>
2
<html>
3
<body>
4
<script>
5
  function createArray(length) {
6
    var arr = new Array(length || 0),
7
        i = length;
8
9
    if (arguments.length > 1) {
10
        var args = Array.prototype.slice.call(arguments, 1);
11
        while(i--) arr[length-1 - i] = createArray.apply(this, args);
12
    }
13
14
    return arr;
15
}
16
function doit() {
17
  var pixels = createArray(120,320, 3);
18
  var x,y,xx,yy;
19
  var r=0,g=0,b=0;
20
  var s = "";
21
22
  var index;
23
  var r5g6b5 = 0;
24
  var ctx=document.getElementById("myCanvas").getContext("2d");
25
26
  imageData = ctx.getImageData(0, 0, 320, 240);
27
28
  for (y=0; y<240; y++) {
29
    for (x=0; x<320; x++) {
30
      index = (x + y * 320) * 4;
31
      r = parseInt(imageData.data[index+0] / 8);
32
      g = parseInt(imageData.data[index+1] / 4);
33
      b = parseInt(imageData.data[index+2] / 8);
34
      r5g6b5 = r*32*64 +g*32 + b;
35
      s += "0x"+ r5g6b5.toString(16) +",";
36
    }
37
  }
38
  window.document.getElementById("texta").value = s;
39
  
40
}
41
</script>
42
43
<img id = "myimg" src="img.png" >
44
<canvas id="myCanvas" width="320" height="240" style="border:none;">
45
Your browser does not support the HTML5 canvas tag.
46
</canvas>
47
<br />
48
<textarea id="texta" style=" width: 100%; height:300px;"></textarea>
49
<br />
50
<button onclick ="doit();">Convert</button>
51
<script>
52
  var ctx=document.getElementById("myCanvas").getContext("2d");
53
  var img=document.getElementById("myimg");
54
  ctx.drawImage(img,0,0,320,240);
55
  window.document.getElementById("texta").value = "";
56
</script>
57
58
</body>
59
</html>

von Info (Gast)


Lesenswert?

> var pixels = createArray(120,320, 3);
Wird nicht benutzt!

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.