6 <html lang="en" class="no-js">
10 <meta name="viewport" content="width=device-width,initial-scale=1">
11 <meta http-equiv="x-ua-compatible" content="ie=edge">
13 <meta name="description" content="API Reference Documentation for FreeType-2.10.1">
17 <meta name="author" content="FreeType Contributors">
20 <meta name="lang:clipboard.copy" content="Copy to clipboard">
22 <meta name="lang:clipboard.copied" content="Copied to clipboard">
24 <meta name="lang:search.language" content="en">
26 <meta name="lang:search.pipeline.stopwords" content="True">
28 <meta name="lang:search.pipeline.trimmer" content="True">
30 <meta name="lang:search.result.none" content="No matching documents">
32 <meta name="lang:search.result.one" content="1 matching document">
34 <meta name="lang:search.result.other" content="# matching documents">
36 <meta name="lang:search.tokenizer" content="[\s\-]+">
38 <link rel="shortcut icon" href="images/favico.ico">
39 <meta name="generator" content="mkdocs-1.0.4, mkdocs-material-4.0.2">
43 <title>GZIP Streams - FreeType-2.10.1 API Reference</title>
47 <link rel="stylesheet" href="assets/stylesheets/application.982221ab.css">
49 <link rel="stylesheet" href="assets/stylesheets/application-palette.224b79ff.css">
54 <meta name="theme-color" content="#4caf50">
58 <script src="assets/javascripts/modernizr.1f0bcf2b.js"></script>
62 <link href="https://fonts.gstatic.com" rel="preconnect" crossorigin>
63 <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Noto+Serif:300,400,400i,700|Roboto+Mono">
64 <style>body,input{font-family:"Noto Serif","Helvetica Neue",Helvetica,Arial,sans-serif}code,kbd,pre{font-family:"Roboto Mono","Courier New",Courier,monospace}</style>
67 <link rel="stylesheet" href="assets/fonts/material-icons.css">
70 <link rel="stylesheet" href="stylesheets/extra.css">
80 <body dir="ltr" data-md-color-primary="green" data-md-color-accent="green">
88 <input class="md-toggle" data-md-toggle="drawer" type="checkbox" id="__drawer" autocomplete="off">
89 <input class="md-toggle" data-md-toggle="search" type="checkbox" id="__search" autocomplete="off">
90 <label class="md-overlay" data-md-component="overlay" for="__drawer"></label>
92 <a href="#gzip-streams" tabindex="1" class="md-skip">
97 <header class="md-header" data-md-component="header">
98 <nav class="md-header-nav md-grid">
100 <div class="md-flex__cell md-flex__cell--shrink">
101 <a href="index.html" title="FreeType-2.10.1 API Reference" class="md-header-nav__button md-logo">
103 <img src="images/favico.ico" width="24" height="24">
107 <div class="md-flex__cell md-flex__cell--shrink">
108 <label class="md-icon md-icon--menu md-header-nav__button" for="__drawer"></label>
110 <div class="md-flex__cell md-flex__cell--stretch">
111 <div class="md-flex__ellipsis md-header-nav__title" data-md-component="title">
113 <span class="md-header-nav__topic">
114 FreeType-2.10.1 API Reference
116 <span class="md-header-nav__topic">
122 <div class="md-flex__cell md-flex__cell--shrink">
124 <label class="md-icon md-icon--search md-header-nav__button" for="__search"></label>
126 <div class="md-search" data-md-component="search" role="dialog">
127 <label class="md-search__overlay" for="__search"></label>
128 <div class="md-search__inner" role="search">
129 <form class="md-search__form" name="search">
130 <input type="text" class="md-search__input" name="query" placeholder="Search" autocapitalize="off" autocorrect="off" autocomplete="off" spellcheck="false" data-md-component="query" data-md-state="active">
131 <label class="md-icon md-search__icon" for="__search"></label>
132 <button type="reset" class="md-icon md-search__icon" data-md-component="reset" tabindex="-1">
136 <div class="md-search__output">
137 <div class="md-search__scrollwrap" data-md-scrollfix>
138 <div class="md-search-result" data-md-component="result">
139 <div class="md-search-result__meta">
140 Type to start searching
142 <ol class="md-search-result__list"></ol>
155 <div class="md-container">
160 <main class="md-main">
161 <div class="md-main__inner md-grid" data-md-component="container">
164 <div class="md-sidebar md-sidebar--primary" data-md-component="navigation">
165 <div class="md-sidebar__scrollwrap">
166 <div class="md-sidebar__inner">
167 <nav class="md-nav md-nav--primary" data-md-level="0">
168 <label class="md-nav__title md-nav__title--site" for="__drawer">
169 <a href="index.html" title="FreeType-2.10.1 API Reference" class="md-nav__button md-logo">
171 <img src="images/favico.ico" width="48" height="48">
174 FreeType-2.10.1 API Reference
177 <ul class="md-nav__list" data-md-scrollfix>
184 <li class="md-nav__item">
185 <a href="index.html" title="TOC" class="md-nav__link">
196 <li class="md-nav__item">
197 <a href="ft2-index.html" title="Index" class="md-nav__link">
208 <li class="md-nav__item md-nav__item--nested">
210 <input class="md-toggle md-nav__toggle" data-md-toggle="nav-3" type="checkbox" id="nav-3">
212 <label class="md-nav__link" for="nav-3">
215 <nav class="md-nav" data-md-component="collapsible" data-md-level="1">
216 <label class="md-nav__title" for="nav-3">
219 <ul class="md-nav__list" data-md-scrollfix>
227 <li class="md-nav__item">
228 <a href="ft2-header_inclusion.html" title="FreeType's header inclusion scheme" class="md-nav__link">
229 FreeType's header inclusion scheme
239 <li class="md-nav__item">
240 <a href="ft2-user_allocation.html" title="User allocation" class="md-nav__link">
256 <li class="md-nav__item md-nav__item--nested">
258 <input class="md-toggle md-nav__toggle" data-md-toggle="nav-4" type="checkbox" id="nav-4">
260 <label class="md-nav__link" for="nav-4">
263 <nav class="md-nav" data-md-component="collapsible" data-md-level="1">
264 <label class="md-nav__title" for="nav-4">
267 <ul class="md-nav__list" data-md-scrollfix>
275 <li class="md-nav__item">
276 <a href="ft2-version.html" title="FreeType Version" class="md-nav__link">
287 <li class="md-nav__item">
288 <a href="ft2-basic_types.html" title="Basic Data Types" class="md-nav__link">
299 <li class="md-nav__item">
300 <a href="ft2-base_interface.html" title="Base Interface" class="md-nav__link">
311 <li class="md-nav__item">
312 <a href="ft2-glyph_variants.html" title="Unicode Variation Sequences" class="md-nav__link">
313 Unicode Variation Sequences
323 <li class="md-nav__item">
324 <a href="ft2-color_management.html" title="Glyph Color Management" class="md-nav__link">
325 Glyph Color Management
335 <li class="md-nav__item">
336 <a href="ft2-layer_management.html" title="Glyph Layer Management" class="md-nav__link">
337 Glyph Layer Management
347 <li class="md-nav__item">
348 <a href="ft2-glyph_management.html" title="Glyph Management" class="md-nav__link">
359 <li class="md-nav__item">
360 <a href="ft2-mac_specific.html" title="Mac Specific Interface" class="md-nav__link">
361 Mac Specific Interface
371 <li class="md-nav__item">
372 <a href="ft2-sizes_management.html" title="Size Management" class="md-nav__link">
383 <li class="md-nav__item">
384 <a href="ft2-header_file_macros.html" title="Header File Macros" class="md-nav__link">
400 <li class="md-nav__item md-nav__item--nested">
402 <input class="md-toggle md-nav__toggle" data-md-toggle="nav-5" type="checkbox" id="nav-5">
404 <label class="md-nav__link" for="nav-5">
407 <nav class="md-nav" data-md-component="collapsible" data-md-level="1">
408 <label class="md-nav__title" for="nav-5">
411 <ul class="md-nav__list" data-md-scrollfix>
419 <li class="md-nav__item">
420 <a href="ft2-multiple_masters.html" title="Multiple Masters" class="md-nav__link">
431 <li class="md-nav__item">
432 <a href="ft2-truetype_tables.html" title="TrueType Tables" class="md-nav__link">
443 <li class="md-nav__item">
444 <a href="ft2-type1_tables.html" title="Type 1 Tables" class="md-nav__link">
455 <li class="md-nav__item">
456 <a href="ft2-sfnt_names.html" title="SFNT Names" class="md-nav__link">
467 <li class="md-nav__item">
468 <a href="ft2-bdf_fonts.html" title="BDF and PCF Files" class="md-nav__link">
479 <li class="md-nav__item">
480 <a href="ft2-cid_fonts.html" title="CID Fonts" class="md-nav__link">
491 <li class="md-nav__item">
492 <a href="ft2-pfr_fonts.html" title="PFR Fonts" class="md-nav__link">
503 <li class="md-nav__item">
504 <a href="ft2-winfnt_fonts.html" title="Window FNT Files" class="md-nav__link">
515 <li class="md-nav__item">
516 <a href="ft2-font_formats.html" title="Font Formats" class="md-nav__link">
527 <li class="md-nav__item">
528 <a href="ft2-gasp_table.html" title="Gasp Table" class="md-nav__link">
544 <li class="md-nav__item md-nav__item--nested">
546 <input class="md-toggle md-nav__toggle" data-md-toggle="nav-6" type="checkbox" id="nav-6">
548 <label class="md-nav__link" for="nav-6">
549 Controlling FreeType Modules
551 <nav class="md-nav" data-md-component="collapsible" data-md-level="1">
552 <label class="md-nav__title" for="nav-6">
553 Controlling FreeType Modules
555 <ul class="md-nav__list" data-md-scrollfix>
563 <li class="md-nav__item">
564 <a href="ft2-auto_hinter.html" title="The auto-hinter" class="md-nav__link">
575 <li class="md-nav__item">
576 <a href="ft2-cff_driver.html" title="The CFF driver" class="md-nav__link">
587 <li class="md-nav__item">
588 <a href="ft2-t1_cid_driver.html" title="The Type 1 and CID drivers" class="md-nav__link">
589 The Type 1 and CID drivers
599 <li class="md-nav__item">
600 <a href="ft2-tt_driver.html" title="The TrueType driver" class="md-nav__link">
611 <li class="md-nav__item">
612 <a href="ft2-pcf_driver.html" title="The PCF driver" class="md-nav__link">
623 <li class="md-nav__item">
624 <a href="ft2-properties.html" title="Driver properties" class="md-nav__link">
635 <li class="md-nav__item">
636 <a href="ft2-parameter_tags.html" title="Parameter Tags" class="md-nav__link">
647 <li class="md-nav__item">
648 <a href="ft2-lcd_rendering.html" title="Subpixel Rendering" class="md-nav__link">
664 <li class="md-nav__item md-nav__item--nested">
666 <input class="md-toggle md-nav__toggle" data-md-toggle="nav-7" type="checkbox" id="nav-7">
668 <label class="md-nav__link" for="nav-7">
671 <nav class="md-nav" data-md-component="collapsible" data-md-level="1">
672 <label class="md-nav__title" for="nav-7">
675 <ul class="md-nav__list" data-md-scrollfix>
683 <li class="md-nav__item">
684 <a href="ft2-cache_subsystem.html" title="Cache Sub-System" class="md-nav__link">
702 <li class="md-nav__item md-nav__item--active md-nav__item--nested">
704 <input class="md-toggle md-nav__toggle" data-md-toggle="nav-8" type="checkbox" id="nav-8" checked>
706 <label class="md-nav__link" for="nav-8">
709 <nav class="md-nav" data-md-component="collapsible" data-md-level="1">
710 <label class="md-nav__title" for="nav-8">
713 <ul class="md-nav__list" data-md-scrollfix>
721 <li class="md-nav__item">
722 <a href="ft2-computations.html" title="Computations" class="md-nav__link">
733 <li class="md-nav__item">
734 <a href="ft2-list_processing.html" title="List Processing" class="md-nav__link">
745 <li class="md-nav__item">
746 <a href="ft2-outline_processing.html" title="Outline Processing" class="md-nav__link">
757 <li class="md-nav__item">
758 <a href="ft2-quick_advance.html" title="Quick retrieval of advance values" class="md-nav__link">
759 Quick retrieval of advance values
769 <li class="md-nav__item">
770 <a href="ft2-bitmap_handling.html" title="Bitmap Handling" class="md-nav__link">
781 <li class="md-nav__item">
782 <a href="ft2-raster.html" title="Scanline Converter" class="md-nav__link">
793 <li class="md-nav__item">
794 <a href="ft2-glyph_stroker.html" title="Glyph Stroker" class="md-nav__link">
805 <li class="md-nav__item">
806 <a href="ft2-system_interface.html" title="System Interface" class="md-nav__link">
817 <li class="md-nav__item">
818 <a href="ft2-module_management.html" title="Module Management" class="md-nav__link">
831 <li class="md-nav__item md-nav__item--active">
833 <input class="md-toggle md-nav__toggle" data-md-toggle="toc" type="checkbox" id="__toc">
838 <label class="md-nav__link md-nav__link--active" for="__toc">
842 <a href="ft2-gzip.html" title="GZIP Streams" class="md-nav__link md-nav__link--active">
847 <nav class="md-nav md-nav--secondary">
853 <label class="md-nav__title" for="__toc">Table of contents</label>
854 <ul class="md-nav__list" data-md-scrollfix>
856 <li class="md-nav__item">
857 <a href="#synopsis" title="Synopsis" class="md-nav__link">
863 <li class="md-nav__item">
864 <a href="#ft_stream_opengzip" title="FT_Stream_OpenGzip" class="md-nav__link">
870 <li class="md-nav__item">
871 <a href="#ft_gzip_uncompress" title="FT_Gzip_Uncompress" class="md-nav__link">
893 <li class="md-nav__item">
894 <a href="ft2-lzw.html" title="LZW Streams" class="md-nav__link">
905 <li class="md-nav__item">
906 <a href="ft2-bzip2.html" title="BZIP2 Streams" class="md-nav__link">
922 <li class="md-nav__item md-nav__item--nested">
924 <input class="md-toggle md-nav__toggle" data-md-toggle="nav-9" type="checkbox" id="nav-9">
926 <label class="md-nav__link" for="nav-9">
929 <nav class="md-nav" data-md-component="collapsible" data-md-level="1">
930 <label class="md-nav__title" for="nav-9">
933 <ul class="md-nav__list" data-md-scrollfix>
941 <li class="md-nav__item">
942 <a href="ft2-error_enumerations.html" title="Error Enumerations" class="md-nav__link">
953 <li class="md-nav__item">
954 <a href="ft2-error_code_values.html" title="Error Code Values" class="md-nav__link">
970 <li class="md-nav__item md-nav__item--nested">
972 <input class="md-toggle md-nav__toggle" data-md-toggle="nav-10" type="checkbox" id="nav-10">
974 <label class="md-nav__link" for="nav-10">
977 <nav class="md-nav" data-md-component="collapsible" data-md-level="1">
978 <label class="md-nav__title" for="nav-10">
981 <ul class="md-nav__list" data-md-scrollfix>
989 <li class="md-nav__item">
990 <a href="ft2-ot_validation.html" title="OpenType Validation" class="md-nav__link">
1001 <li class="md-nav__item">
1002 <a href="ft2-incremental.html" title="Incremental Loading" class="md-nav__link">
1013 <li class="md-nav__item">
1014 <a href="ft2-truetype_engine.html" title="The TrueType Engine" class="md-nav__link">
1025 <li class="md-nav__item">
1026 <a href="ft2-gx_validation.html" title="TrueTypeGX/AAT Validation" class="md-nav__link">
1027 TrueTypeGX/AAT Validation
1044 <div class="md-sidebar md-sidebar--secondary" data-md-component="toc">
1045 <div class="md-sidebar__scrollwrap">
1046 <div class="md-sidebar__inner">
1048 <nav class="md-nav md-nav--secondary">
1054 <label class="md-nav__title" for="__toc">Table of contents</label>
1055 <ul class="md-nav__list" data-md-scrollfix>
1057 <li class="md-nav__item">
1058 <a href="#synopsis" title="Synopsis" class="md-nav__link">
1064 <li class="md-nav__item">
1065 <a href="#ft_stream_opengzip" title="FT_Stream_OpenGzip" class="md-nav__link">
1071 <li class="md-nav__item">
1072 <a href="#ft_gzip_uncompress" title="FT_Gzip_Uncompress" class="md-nav__link">
1090 <div class="md-content">
1091 <article class="md-content__inner md-typeset">
1095 <p><a href="https://www.freetype.org">FreeType</a> » <a href="../">Docs</a> » <a href="index.html#support-api">Support API</a> » GZIP Streams</p>
1097 <h1 id="gzip-streams">GZIP Streams<a class="headerlink" href="#gzip-streams" title="Permanent link">¶</a></h1>
1098 <h2 id="synopsis">Synopsis<a class="headerlink" href="#synopsis" title="Permanent link">¶</a></h2>
1099 <p>This section contains the declaration of Gzip-specific functions.</p>
1100 <h2 id="ft_stream_opengzip">FT_Stream_OpenGzip<a class="headerlink" href="#ft_stream_opengzip" title="Permanent link">¶</a></h2>
1101 <p>Defined in FT_GZIP_H (freetype/ftgzip.h).</p>
1102 <div class = "codehilite">
1104 FT_EXPORT( <a href="ft2-basic_types.html#ft_error">FT_Error</a> )
1105 <b>FT_Stream_OpenGzip</b>( <a href="ft2-system_interface.html#ft_stream">FT_Stream</a> stream,
1106 <a href="ft2-system_interface.html#ft_stream">FT_Stream</a> source );
1110 <p>Open a new stream to parse gzip-compressed font files. This is mainly used to support the compressed <code>*.pcf.gz</code> fonts that come with XFree86.</p>
1113 <table class="fields">
1114 <tr><td class="val" id="stream">stream</td><td class="desc">
1115 <p>The target embedding stream.</p>
1117 <tr><td class="val" id="source">source</td><td class="desc">
1118 <p>The source stream.</p>
1124 <p>FreeType error code. 0 means success.</p>
1127 <p>The source stream must be opened <em>before</em> calling this function.</p>
1128 <p>Calling the internal function <code>FT_Stream_Close</code> on the new stream will <strong>not</strong> call <code>FT_Stream_Close</code> on the source stream. None of the stream objects will be released to the heap.</p>
1129 <p>The stream implementation is very basic and resets the decompression process each time seeking backwards is needed within the stream.</p>
1130 <p>In certain builds of the library, gzip compression recognition is automatically handled when calling <code><a href="ft2-base_interface.html#ft_new_face">FT_New_Face</a></code> or <code><a href="ft2-base_interface.html#ft_open_face">FT_Open_Face</a></code>. This means that if no font driver is capable of handling the raw compressed file, the library will try to open a gzipped stream from it and re-open the face with it.</p>
1131 <p>This function may return <code>FT_Err_Unimplemented_Feature</code> if your build of FreeType was not compiled with zlib support.</p>
1134 <h2 id="ft_gzip_uncompress">FT_Gzip_Uncompress<a class="headerlink" href="#ft_gzip_uncompress" title="Permanent link">¶</a></h2>
1135 <p>Defined in FT_GZIP_H (freetype/ftgzip.h).</p>
1136 <div class = "codehilite">
1138 FT_EXPORT( <a href="ft2-basic_types.html#ft_error">FT_Error</a> )
1139 <b>FT_Gzip_Uncompress</b>( <a href="ft2-system_interface.html#ft_memory">FT_Memory</a> memory,
1140 <a href="ft2-basic_types.html#ft_byte">FT_Byte</a>* output,
1141 <a href="ft2-basic_types.html#ft_ulong">FT_ULong</a>* output_len,
1142 <span class="keyword">const</span> <a href="ft2-basic_types.html#ft_byte">FT_Byte</a>* input,
1143 <a href="ft2-basic_types.html#ft_ulong">FT_ULong</a> input_len );
1147 <p>Decompress a zipped input buffer into an output buffer. This function is modeled after zlib's <code>uncompress</code> function.</p>
1150 <table class="fields">
1151 <tr><td class="val" id="memory">memory</td><td class="desc">
1152 <p>A FreeType memory handle.</p>
1154 <tr><td class="val" id="input">input</td><td class="desc">
1155 <p>The input buffer.</p>
1157 <tr><td class="val" id="input_len">input_len</td><td class="desc">
1158 <p>The length of the input buffer.</p>
1164 <table class="fields">
1165 <tr><td class="val" id="output">output</td><td class="desc">
1166 <p>The output buffer.</p>
1172 <table class="fields">
1173 <tr><td class="val" id="output_len">output_len</td><td class="desc">
1174 <p>Before calling the function, this is the total size of the output buffer, which must be large enough to hold the entire uncompressed data (so the size of the uncompressed data must be known in advance). After calling the function, <code>output_len</code> is the size of the used data in <code>output</code>.</p>
1180 <p>FreeType error code. 0 means success.</p>
1183 <p>This function may return <code>FT_Err_Unimplemented_Feature</code> if your build of FreeType was not compiled with zlib support.</p>
1203 <footer class="md-footer">
1205 <div class="md-footer-nav">
1206 <nav class="md-footer-nav__inner md-grid">
1208 <a href="ft2-module_management.html" title="Module Management" class="md-flex md-footer-nav__link md-footer-nav__link--prev" rel="prev">
1209 <div class="md-flex__cell md-flex__cell--shrink">
1210 <i class="md-icon md-icon--arrow-back md-footer-nav__button"></i>
1212 <div class="md-flex__cell md-flex__cell--stretch md-footer-nav__title">
1213 <span class="md-flex__ellipsis">
1214 <span class="md-footer-nav__direction">
1223 <a href="ft2-lzw.html" title="LZW Streams" class="md-flex md-footer-nav__link md-footer-nav__link--next" rel="next">
1224 <div class="md-flex__cell md-flex__cell--stretch md-footer-nav__title">
1225 <span class="md-flex__ellipsis">
1226 <span class="md-footer-nav__direction">
1232 <div class="md-flex__cell md-flex__cell--shrink">
1233 <i class="md-icon md-icon--arrow-forward md-footer-nav__button"></i>
1240 <div class="md-footer-meta md-typeset">
1241 <div class="md-footer-meta__inner md-grid">
1242 <div class="md-footer-copyright">
1244 <div class="md-footer-copyright__highlight">
1245 Copyright 2019 <a href = "https://www.freetype.org/license.html">The FreeType Project</a>.
1249 <a href="https://www.mkdocs.org">MkDocs</a>
1251 <a href="https://squidfunk.github.io/mkdocs-material/">
1252 Material for MkDocs</a>
1261 <script src="assets/javascripts/application.d9aa80ab.js"></script>
1263 <script>app.initialize({version:"1.0.4",url:{base:"."}})</script>
1265 <script src="javascripts/extra.js"></script>