Skip to content

Commit 3c62f3b

Browse files
authored
Merge pull request #2702 from gnestor/image-gif
Add image/gif mimetype
2 parents dbda330 + d00617a commit 3c62f3b

File tree

1 file changed

+25
-3
lines changed

1 file changed

+25
-3
lines changed

notebook/static/notebook/js/outputarea.js

Lines changed: 25 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -263,6 +263,7 @@ define([
263263
var MIME_SVG = 'image/svg+xml';
264264
var MIME_PNG = 'image/png';
265265
var MIME_JPEG = 'image/jpeg';
266+
var MIME_GIF = 'image/gif';
266267
var MIME_PDF = 'application/pdf';
267268
var MIME_TEXT = 'text/plain';
268269

@@ -275,6 +276,7 @@ define([
275276
MIME_SVG,
276277
MIME_PNG,
277278
MIME_JPEG,
279+
MIME_GIF,
278280
MIME_PDF,
279281
MIME_TEXT,
280282
];
@@ -660,6 +662,7 @@ define([
660662
OutputArea.safe_outputs[MIME_LATEX] = true;
661663
OutputArea.safe_outputs[MIME_PNG] = true;
662664
OutputArea.safe_outputs[MIME_JPEG] = true;
665+
OutputArea.safe_outputs[MIME_GIF] = true;
663666

664667
OutputArea.prototype.append_mime_type = function (json, element, handle_inserted) {
665668
for (var i=0; i < OutputArea.display_order.length; i++) {
@@ -683,7 +686,7 @@ define([
683686
// callback, if the mime type is something other we must call the
684687
// inserted callback only when the element is actually inserted
685688
// into the DOM. Use a timeout of 0 to do this.
686-
if ([MIME_PNG, MIME_JPEG].indexOf(type) < 0 && handle_inserted !== undefined) {
689+
if ([MIME_PNG, MIME_JPEG, MIME_GIF].indexOf(type) < 0 && handle_inserted !== undefined) {
687690
setTimeout(handle_inserted, 0);
688691
}
689692
this.events.trigger('output_appended.OutputArea', [type, value, md, toinsert]);
@@ -822,7 +825,7 @@ define([
822825
});
823826
}
824827
img[0].src = 'data:image/png;base64,'+ png;
825-
set_width_height(img, md, MIME_PNG);
828+
set_width_height(img, md, type);
826829
dblclick_to_reset_size(img);
827830
toinsert.append(img);
828831
element.append(toinsert);
@@ -840,7 +843,24 @@ define([
840843
});
841844
}
842845
img[0].src = 'data:image/jpeg;base64,'+ jpeg;
843-
set_width_height(img, md, MIME_JPEG);
846+
set_width_height(img, md, type);
847+
dblclick_to_reset_size(img);
848+
toinsert.append(img);
849+
element.append(toinsert);
850+
return toinsert;
851+
};
852+
853+
var append_gif = function (gif, md, element, handle_inserted) {
854+
var type = MIME_GIF;
855+
var toinsert = this.create_output_subarea(md, "output_gif", type);
856+
var img = $("<img/>");
857+
if (handle_inserted !== undefined) {
858+
img.on('load', function(){
859+
handle_inserted(img);
860+
});
861+
}
862+
img[0].src = 'data:image/gif;base64,'+ gif;
863+
set_width_height(img, md, type);
844864
dblclick_to_reset_size(img);
845865
toinsert.append(img);
846866
element.append(toinsert);
@@ -1073,6 +1093,7 @@ define([
10731093
MIME_SVG,
10741094
MIME_PNG,
10751095
MIME_JPEG,
1096+
MIME_GIF,
10761097
MIME_PDF,
10771098
MIME_TEXT
10781099
];
@@ -1084,6 +1105,7 @@ define([
10841105
OutputArea.append_map[MIME_SVG] = append_svg;
10851106
OutputArea.append_map[MIME_PNG] = append_png;
10861107
OutputArea.append_map[MIME_JPEG] = append_jpeg;
1108+
OutputArea.append_map[MIME_GIF] = append_gif;
10871109
OutputArea.append_map[MIME_LATEX] = append_latex;
10881110
OutputArea.append_map[MIME_JAVASCRIPT] = append_javascript;
10891111
OutputArea.append_map[MIME_PDF] = append_pdf;

0 commit comments

Comments
 (0)