gpujs / gpujs/gpu.js

Getting wrong color when drawing large image

Aperta
#707 2 commenti 0 reazioni 0 assegnatari Vedi su GitHub
Lingua principale
JavaScript
Stelle
15.5k
Fork
663
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Descrizione

First of all , thank you for your great work.
I've been trying to follow [wobbling cat](https://observablehq.com/@fil/image-to-gpu) example but first I started by redrawing an image. I use nodejs and getPixels() method instead of getting a canvas. It all works fine with cat.jpg and other 1000 x 1000 images but when I use large (3634x5451) image this is what happened.


![rotated](https://user-images.githubusercontent.com/6382447/127479252-b584a6aa-ef0c-4a23-b860-c67f2f95b9f3.jpeg)

**CODE**
```
const kernel = function(image) {
let x = this.thread.x,
y = this.thread.y;

const n = 4 * ( x + this.constants.w * (this.constants.h - y) );
this.color(image[n] / 256, image[n+1] / 256, image[n+2] / 256, image[n+3] / 256)
}

const drawImage = gpu.createKernel(kernel)
.setConstants({ w: width, h: height})
.setOutput([width, height])
.setGraphical(true)

drawImage(buffer)
const pixels = drawImage.getPixels()
gpu.destroy()

// write image file with returned pixels
```

**Running on**

- NodeJS : 14.17.3
- gpu.js : 2.11.3
- jpeg-js : 0.4.3
- AMD Radeon Pro 5300M

**Original image**
It should just redraw the same image.

![car](https://user-images.githubusercontent.com/6382447/127481060-3d502e8a-052a-4c69-ae70-3986c492c133.jpeg)

Importance : 3

Guida per i contributori

Apri la guida per i contributori

Direzione di ricerca

Inizia riproducendo il kernel drawImage segnalato usando nodejs, getPixels() e l’immagine 3634x5451, confrontandolo con il caso riuscito 1000x1000. Ispeziona l’output di setGraphical(true) e il percorso di rilettura dei pixel; il lavoro è completato quando l’immagine grande viene ridisegnata con colori corrispondenti invece dell’output errato segnalato.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
javascript, nodejs
Ambito
computer-graphics
Tipo di issue
Bug
Difficoltà
3/5
Tempo stimato
1-2 giorni
Stato di attività
Ferma
Chiarezza
Abbastanza chiara
Idoneità per principianti
35/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.