diff options
author | Tor Andersson <tor.andersson@artifex.com> | 2017-07-26 15:58:33 +0200 |
---|---|---|
committer | Tor Andersson <tor.andersson@artifex.com> | 2017-07-27 14:44:04 +0200 |
commit | 44cff76eb82cf11097e4e01348240e3556e22a7f (patch) | |
tree | 9289a3eea90f621846a6c31d0ae82bb6394a0789 /source/fitz/stext-output.c | |
parent | 1840cf480522ee03e22a0f36b76a85dde62c4c8f (diff) | |
download | mupdf-44cff76eb82cf11097e4e01348240e3556e22a7f.tar.xz |
Add fz_write_base64 function.
Diffstat (limited to 'source/fitz/stext-output.c')
-rw-r--r-- | source/fitz/stext-output.c | 44 |
1 files changed, 3 insertions, 41 deletions
diff --git a/source/fitz/stext-output.c b/source/fitz/stext-output.c index a247fc8d..d2fe2d69 100644 --- a/source/fitz/stext-output.c +++ b/source/fitz/stext-output.c @@ -53,44 +53,6 @@ fz_print_stext_sheet(fz_context *ctx, fz_output *out, fz_stext_sheet *sheet) fz_print_style(ctx, out, style); } -static void -send_data_base64_stext(fz_context *ctx, fz_output *out, fz_buffer *buffer) -{ - size_t i, len; - static const char set[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; - - len = buffer->len/3; - for (i = 0; i < len; i++) - { - int c = buffer->data[3*i]; - int d = buffer->data[3*i+1]; - int e = buffer->data[3*i+2]; - if ((i & 15) == 0) - fz_write_printf(ctx, out, "\n"); - fz_write_printf(ctx, out, "%c%c%c%c", set[c>>2], set[((c&3)<<4)|(d>>4)], set[((d&15)<<2)|(e>>6)], set[e & 63]); - } - i *= 3; - switch (buffer->len-i) - { - case 2: - { - int c = buffer->data[i]; - int d = buffer->data[i+1]; - fz_write_printf(ctx, out, "%c%c%c=", set[c>>2], set[((c&3)<<4)|(d>>4)], set[((d&15)<<2)]); - break; - } - case 1: - { - int c = buffer->data[i]; - fz_write_printf(ctx, out, "%c%c==", set[c>>2], set[(c&3)<<4]); - break; - } - default: - case 0: - break; - } -} - void fz_print_stext_page_html(fz_context *ctx, fz_output *out, fz_stext_page *page) { @@ -232,17 +194,17 @@ fz_print_stext_page_html(fz_context *ctx, fz_output *out, fz_stext_page *page) { case FZ_IMAGE_JPEG: fz_write_printf(ctx, out, "image/jpeg;base64,"); - send_data_base64_stext(ctx, out, buffer->buffer); + fz_write_base64_buffer(ctx, out, buffer->buffer, 1); break; case FZ_IMAGE_PNG: fz_write_printf(ctx, out, "image/png;base64,"); - send_data_base64_stext(ctx, out, buffer->buffer); + fz_write_base64_buffer(ctx, out, buffer->buffer, 1); break; default: { fz_buffer *buf = fz_new_buffer_from_image_as_png(ctx, image->image, NULL); fz_write_printf(ctx, out, "image/png;base64,"); - send_data_base64_stext(ctx, out, buf); + fz_write_base64_buffer(ctx, out, buf, 1); fz_drop_buffer(ctx, buf); break; } |