У меня есть массив данных ARGB без знака. Таким образом, эти данные здесь 16 х 16 изображение так его 16^2 элементов = 256.Попытка нарисовать ARGB-данные без знака длинным для HTML-холста
Я не в состоянии сделать его данным, ctx.createImageData(theData)
бросает Exception: TypeError: Argument 1 of CanvasRenderingContext2D.createImageData does not implement interface ImageData.
Вот мой код:
function drawARGBData(theData) {
//theData is an array of size width x height
//must be square image, so like 16 by 16
var doc = document;
var canvas = doc.createElement('canvas');
doc.body.appendChild(canvas);
var ctx = canvas.getContext('2d');
canvas.width = Math.pow(theData.length, 0.5);
canvas.height = Math.pow(theData.length, 0.5);
ctx.createImageData(theData);
}
var argbData_16by16 = [
'16777215',
'50331648',
'117440512',
'117440512',
'117440512',
'117440512',
'117440512',
'117440512',
'117440512',
'117440512',
'117440512',
'117440512',
'117440512',
'117440512',
'50331648',
'16777215',
'117440512',
'18446744073529823931',
'18446744073695757494',
'18446744073702049907',
'18446744073706972004',
'18446744073697459863',
'18446744073697861829',
'18446744073700887771',
'18446744073700821978',
'18446744073696939192',
'18446744073697191287',
'18446744073704609876',
'18446744073708880971',
'18446744073709208895',
'18446744073603027557',
'117440512',
'520093696',
'18446744073707627114',
'18446744073706307642',
'18446744073707882278',
'18446744073700534358',
'18446744073693656498',
'18446744073696154558',
'18446744073699509204',
'18446744073699509204',
'18446744073695560369',
'18446744073693387160',
'18446744073693253257',
'18446744073699420739',
'18446744073708951059',
'18446744073709414460',
'520093696',
'587202560',
'18446744073707551525',
'18446744073707352597',
'18446744073707352592',
'18446744073700988478',
'18446744073693586584',
'18446744073697795765',
'18446744073699442897',
'18446744073699508947',
'18446744073695954868',
'18446744073693386904',
'18446744073693648790',
'18446744073693318539',
'18446744073696857935',
'18446744073708881935',
'587202560',
'587202560',
'18446744073707485220',
'18446744073707418395',
'18446744073706891281',
'18446744073706425097',
'18446744073707345161',
'18446744073704531761',
'18446744073699046598',
'18446744073698324168',
'18446744073696546743',
'18446744073696545716',
'18446744073698915275',
'18446744073697992127',
'18446744073693117300',
'18446744073705326624',
'587202560',
'654311424',
'18446744073707484962',
'18446744073707418395',
'18446744073707418395',
'18446744073707885140',
'18446744073708550015',
'18446744073701858961',
'18446744073699244237',
'18446744073697994179',
'18446744073698783690',
'18446744073698914762',
'18446744073696807346',
'18446744073698122943',
'18446744073694828680',
'18446744073706314294',
'654311424',
'654311424',
'18446744073707484961',
'18446744073707418395',
'18446744073707484959',
'18446744073707227449',
'18446744073698777775',
'18446744073698979529',
'18446744073699045578',
'18446744073699045578',
'18446744073698650566',
'18446744073693646990',
'18446744073693712013',
'18446744073695224729',
'18446744073697987759',
'18446744073708161575',
'654311424',
'687865856',
'18446744073707418911',
'18446744073706628121',
'18446744073706041131',
'18446744073705459278',
'18446744073698054320',
'18446744073698714307',
'18446744073698780612',
'18446744073698780612',
'18446744073698714563',
'18446744073696014754',
'18446744073693117053',
'18446744073693576313',
'18446744073695482750',
'18446744073708749070',
'687865856',
'704643072',
'18446744073703796493',
'18446744073703464706',
'18446744073700791369',
'18446744073697854638',
'18446744073697987762',
'18446744073698317499',
'18446744073698383548',
'18446744073698383548',
'18446744073698317756',
'18446744073697066154',
'18446744073693048947',
'18446744073692981351',
'18446744073701911603',
'18446744073709003020',
'704643072',
'721420288',
'18446744073704451076',
'18446744073705305601',
'18446744073706038045',
'18446744073698827363',
'18446744073697388940',
'18446744073698830196',
'18446744073702503249',
'18446744073700997739',
'18446744073697590183',
'18446744073696799906',
'18446744073693507184',
'18446744073692912989',
'18446744073707961160',
'18446744073709070346',
'721420288',
'754974720',
'18446744073706424325',
'18446744073707277312',
'18446744073707348239',
'18446744073707418395',
'18446744073707418395',
'18446744073707418395',
'18446744073707287325',
'18446744073707295294',
'18446744073698368621',
'18446744073692912481',
'18446744073692780636',
'18446744073693238859',
'18446744073708885589',
'18446744073709137681',
'754974720',
'771751936',
'18446744073707482647',
'18446744073707544331',
'18446744073707413517',
'18446744073703663880',
'18446744073704059402',
'18446744073704654868',
'18446744073702755885',
'18446744073696790647',
'18446744073694951036',
'18446744073692779609',
'18446744073695995961',
'18446744073703812899',
'18446744073709282817',
'18446744073709072423',
'771751936',
'805306368',
'18446744073707418650',
'18446744073707352597',
'18446744073707417624',
'18446744073706301726',
'18446744073698554672',
'18446744073693238865',
'18446744073695671171',
'18446744073693831018',
'18446744073695670659',
'18446744073696980549',
'18446744073706696221',
'18446744073708214284',
'18446744073708615680',
'18446744073709277532',
'805306368',
'822083584',
'18446744073707485212',
'18446744073707352592',
'18446744073707418390',
'18446744073707352595',
'18446744073707418393',
'18446744073704332580',
'18446744073699801657',
'18446744073700326456',
'18446744073702165039',
'18446744073706892829',
'18446744073707418650',
'18446744073707881733',
'18446744073708679704',
'18446744073709417314',
'822083584',
'520093696',
'18446744073603404600',
'18446744073706757147',
'18446744073707353372',
'18446744073707485472',
'18446744073707485468',
'18446744073707617831',
'18446744073707684400',
'18446744073707684401',
'18446744073707617837',
'18446744073707551527',
'18446744073707415827',
'18446744073707949578',
'18446744073709418781',
'18446744073604998444',
'520093696',
'50331648',
'822083584',
'1493172224',
'1493172224',
'1493172224',
'1493172224',
'1493172224',
'1493172224',
'1493172224',
'1493172224',
'1493172224',
'1493172224',
'1493172224',
'1493172224',
'822083584',
'50331648'
];
drawARGBData(argbData_16by16);
Спасибо Кен! Да, это фактически номера 'UInt64', которые я пытаюсь войти в JS. – Noitidart
Я получил изображение как LONG: https://gist.github.com/Noitidart/7d4e32cde6179b600331, но теперь у нас есть отрицательные числа, было бы хорошо? – Noitidart
@Noitidart они будут преобразованы в unsigned (он будет обрабатывать бит знака как обычный бит). Вы можете увидеть это в консоли: '(-1 >>> 0) .toString (16)' или просто '-1 >>> 0'. Это закончится с 0xffffffff 'var a = new Uint32Array ([- 1])' – K3N