2012-07-02 8 views
8

Ho alcuni dati di pixel arbitrari che voglio salvare come PNG. Come posso codificare un PNG con JavaScript per realizzare questo?Codifica di un PNG con JavaScript

I dati sono una serie di 1 e 0 che voglio utilizzare per creare un codice QR. È codice QR dati arbitrari

Non sto usando il DOM, quindi jQuery e createElement sono fuori.

+0

si può elaborare "i dati dei pixel" parte? "Una serie di 1 e 0" non suona un campanello qui. –

+0

node.js forse? – Kos

+1

Titanium Appcelerator in realtà – Shamoon

risposta

0

EDIT: Come gli altri stati di risposta e collegamenti a c'è una spiegazione javascript del formato PNG. Evviva!

Se si desidera creare un file immagine in formato PNG, la domanda è in sostanza la seguente: "Qual è il formato file per PNG? E come si converte una griglia di codice QR in un'immagine che è un'immagine di codice QR, data che posso definire quel codice QR con una sequenza di 1 e 0 ".

È necessario considerare la compressione LZW se si desidera utilizzare PNG. Perché non guardare GIF o bitmap non compressi? Usa Titanium per creare il file, inserisci un'intestazione per il tuo formato immagine preferito e usa la codifica appropriata per creare a livello di codice l'immagine.

Ma se si desidera semplicemente visualizzare un codice QR sullo schermo perché non utilizzare una tela di titanio Webview? O se sei preoccupato che sia troppo lento (non sarà per disegnare scatole nere), usa il titanio + più Paint per iOS.

Un 'hack' può essere quello di utilizzare gli elementi dell'interfaccia utente con posizionamento assoluto per costruire l'immagine del codice QR disegnandola con elementi dell'interfaccia utente. Cool mod.

Oppure è possibile utilizzare il formato SVG in una visualizzazione Web. Personalmente, penso che il modo più semplice se hai bisogno di un file è usare una bitmap con un'intestazione hardcoded come ho detto sopra, o una GIF se non puoi usare una bitmap.

Se hai solo bisogno dell'immagine, proverei ad usare uno dei metodi di disegno Appcelerator.

Buona fortuna!