Error while parsing Gif in Typescript/Javascript
I am trying to parse a .GIF in Typescript. What I really want is to extract the frames, but that if a bit much right now.
I am right now trying to adapt the script from:
http://slbkbs.org/jsgif/ to work in typescript.
Here is my attempt: https://stackblitz.com/edit/typescript-syn3av
I feel like I am VERY close, but I am getting an error on line 296 as I parse a block. I am at position 205 in the .GIF file.
If anyone has attempted parsing .GIFs before, I would really appreciate info on how to handle unexpected data.
On line 335 of gif.ts
switch (String.fromCharCode(block.sentinel)) {
case '!':
block.type = 'ext';
parseExt(block);
break;
case ',':
block.type = 'img';
parseImg(block);
break;
case ';':
block.type = 'eof';
handler.eof && handler.eof(block);
break;
default:
throw new Error('Unknown block: 0x' + block.sentinel.toString(16)); // TODO: Pad this with a 0.
}
the result of String.fromCharCode(block.sentinel) seems to be: 0xfd or ý and that is no good.... Am I out of order with how I increment my position?
Update:
I changed the .GIF, and now I am getting an error code: 0x0
Thanks!
javascript typescript animated-gif
add a comment |
I am trying to parse a .GIF in Typescript. What I really want is to extract the frames, but that if a bit much right now.
I am right now trying to adapt the script from:
http://slbkbs.org/jsgif/ to work in typescript.
Here is my attempt: https://stackblitz.com/edit/typescript-syn3av
I feel like I am VERY close, but I am getting an error on line 296 as I parse a block. I am at position 205 in the .GIF file.
If anyone has attempted parsing .GIFs before, I would really appreciate info on how to handle unexpected data.
On line 335 of gif.ts
switch (String.fromCharCode(block.sentinel)) {
case '!':
block.type = 'ext';
parseExt(block);
break;
case ',':
block.type = 'img';
parseImg(block);
break;
case ';':
block.type = 'eof';
handler.eof && handler.eof(block);
break;
default:
throw new Error('Unknown block: 0x' + block.sentinel.toString(16)); // TODO: Pad this with a 0.
}
the result of String.fromCharCode(block.sentinel) seems to be: 0xfd or ý and that is no good.... Am I out of order with how I increment my position?
Update:
I changed the .GIF, and now I am getting an error code: 0x0
Thanks!
javascript typescript animated-gif
2
You are testing UTF-8 encoded characters instead of bytes, that's not going to go well. UseTypedArray
.
– amn
Nov 24 '18 at 22:28
@amn If you post that as an answer I will accept it.
– Kevin192291
Nov 25 '18 at 4:31
add a comment |
I am trying to parse a .GIF in Typescript. What I really want is to extract the frames, but that if a bit much right now.
I am right now trying to adapt the script from:
http://slbkbs.org/jsgif/ to work in typescript.
Here is my attempt: https://stackblitz.com/edit/typescript-syn3av
I feel like I am VERY close, but I am getting an error on line 296 as I parse a block. I am at position 205 in the .GIF file.
If anyone has attempted parsing .GIFs before, I would really appreciate info on how to handle unexpected data.
On line 335 of gif.ts
switch (String.fromCharCode(block.sentinel)) {
case '!':
block.type = 'ext';
parseExt(block);
break;
case ',':
block.type = 'img';
parseImg(block);
break;
case ';':
block.type = 'eof';
handler.eof && handler.eof(block);
break;
default:
throw new Error('Unknown block: 0x' + block.sentinel.toString(16)); // TODO: Pad this with a 0.
}
the result of String.fromCharCode(block.sentinel) seems to be: 0xfd or ý and that is no good.... Am I out of order with how I increment my position?
Update:
I changed the .GIF, and now I am getting an error code: 0x0
Thanks!
javascript typescript animated-gif
I am trying to parse a .GIF in Typescript. What I really want is to extract the frames, but that if a bit much right now.
I am right now trying to adapt the script from:
http://slbkbs.org/jsgif/ to work in typescript.
Here is my attempt: https://stackblitz.com/edit/typescript-syn3av
I feel like I am VERY close, but I am getting an error on line 296 as I parse a block. I am at position 205 in the .GIF file.
If anyone has attempted parsing .GIFs before, I would really appreciate info on how to handle unexpected data.
On line 335 of gif.ts
switch (String.fromCharCode(block.sentinel)) {
case '!':
block.type = 'ext';
parseExt(block);
break;
case ',':
block.type = 'img';
parseImg(block);
break;
case ';':
block.type = 'eof';
handler.eof && handler.eof(block);
break;
default:
throw new Error('Unknown block: 0x' + block.sentinel.toString(16)); // TODO: Pad this with a 0.
}
the result of String.fromCharCode(block.sentinel) seems to be: 0xfd or ý and that is no good.... Am I out of order with how I increment my position?
Update:
I changed the .GIF, and now I am getting an error code: 0x0
Thanks!
javascript typescript animated-gif
javascript typescript animated-gif
edited Nov 24 '18 at 22:23
Kevin192291
asked Nov 24 '18 at 21:34
Kevin192291Kevin192291
197215
197215
2
You are testing UTF-8 encoded characters instead of bytes, that's not going to go well. UseTypedArray
.
– amn
Nov 24 '18 at 22:28
@amn If you post that as an answer I will accept it.
– Kevin192291
Nov 25 '18 at 4:31
add a comment |
2
You are testing UTF-8 encoded characters instead of bytes, that's not going to go well. UseTypedArray
.
– amn
Nov 24 '18 at 22:28
@amn If you post that as an answer I will accept it.
– Kevin192291
Nov 25 '18 at 4:31
2
2
You are testing UTF-8 encoded characters instead of bytes, that's not going to go well. Use
TypedArray
.– amn
Nov 24 '18 at 22:28
You are testing UTF-8 encoded characters instead of bytes, that's not going to go well. Use
TypedArray
.– amn
Nov 24 '18 at 22:28
@amn If you post that as an answer I will accept it.
– Kevin192291
Nov 25 '18 at 4:31
@amn If you post that as an answer I will accept it.
– Kevin192291
Nov 25 '18 at 4:31
add a comment |
0
active
oldest
votes
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53462564%2ferror-while-parsing-gif-in-typescript-javascript%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
0
active
oldest
votes
0
active
oldest
votes
active
oldest
votes
active
oldest
votes
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53462564%2ferror-while-parsing-gif-in-typescript-javascript%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
2
You are testing UTF-8 encoded characters instead of bytes, that's not going to go well. Use
TypedArray
.– amn
Nov 24 '18 at 22:28
@amn If you post that as an answer I will accept it.
– Kevin192291
Nov 25 '18 at 4:31