2017-12-09 3 views
0

Ich benutze Verarbeitung/Java und ich benutze die Pixel-Array, um jedem Pixel eine Farbe zuzuweisen, aber die Framerate ist viel zu niedrig, wenn ich jedes Pixel zuweisen, so dass ich behandeln möchte ein Block von 5 Pixeln als eins, also machen Sie sie die gleiche Farbe. Ich tue dies nog,Verarbeitung/Java Pixel Array Slicing Zuweisung

for (int x = 0; x < width; x += 5) { 
    // for loop width 
    for (int y = 0; y < height; y += 5) { 
     // For loop height 
     // Assigning pixel color 
     for (int px = 0; px < 5; px++) { 
      for (int py = 0; py < 5; py++) { 
       pixels[x + px + (y + py) * width] = color(myCol); 
      } 
     } 
    } 
} 

aber ich wollte wissen, ob ich wie diese

pixels[startIndex : endIndex] = color(myColor); 
+0

Nein. Java hat kein syntaktisches Konstrukt, um den Bereich eines Arrays auf einen bestimmten Wert zu setzen. – Turing85

Antwort

1

Verarbeitung eine Scheibe des Arrays etwas zuweisen hat eine set() Funktion, die ein Bild Parameter annimmt. Von the reference:

size(100, 100); 
PImage myImage = loadImage("apples.jpg"); 
set(0, 0, myImage); 
line(0, 0, width, height); 
line(0, height, width, 0); 

generated image

Sie könnten Ihre Farbe in ein Bild setzen, und dann das Bild zeichnen. Ich weiß nicht, ob das schneller geht oder nicht.

Eine andere Option wäre einfach die Größe des Eingabebildes beim Start zu ändern.

+0

Ist es möglich, einen Rahmen zu zeichnen und ihn dann auf 5-mal so groß zu skalieren und dann anzuzeigen? –

+0

@ R.Versnel Ja. Siehe die 'createGraphics()' Funktion in der Referenz. –