• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1
2<!doctype html>
3<html lang="en" class="no-js">
4  <head>
5
6      <meta charset="utf-8">
7      <meta name="viewport" content="width=device-width,initial-scale=1">
8
9        <meta name="description" content="API Reference Documentation for FreeType-2.12.1">
10
11
12
13        <meta name="author" content="FreeType Contributors">
14
15
16      <link rel="icon" href="images/favico.ico">
17      <meta name="generator" content="mkdocs-1.2.1, mkdocs-material-7.1.9">
18
19
20
21        <title>Bitmap Handling - FreeType-2.12.1 API Reference</title>
22
23
24
25      <link rel="stylesheet" href="assets/stylesheets/main.ca7ac06f.min.css">
26
27
28        <link rel="stylesheet" href="assets/stylesheets/palette.f1a3b89f.min.css">
29
30
31
32          <meta name="theme-color" content="#4cae4f">
33
34
35
36
37
38
39
40        <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
41        <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Noto+Serif:300,400,400i,700%7CRoboto+Mono&display=fallback">
42        <style>:root{--md-text-font-family:"Noto Serif";--md-code-font-family:"Roboto Mono"}</style>
43
44
45
46
47      <link rel="stylesheet" href="stylesheets/extra.css">
48
49
50
51
52
53
54
55  </head>
56
57
58
59
60
61
62
63    <body dir="ltr" data-md-color-scheme="" data-md-color-primary="green" data-md-color-accent="green">
64
65
66    <script>function __prefix(e){return new URL(".",location).pathname+"."+e}function __get(e,t=localStorage){return JSON.parse(t.getItem(__prefix(e)))}</script>
67
68    <input class="md-toggle" data-md-toggle="drawer" type="checkbox" id="__drawer" autocomplete="off">
69    <input class="md-toggle" data-md-toggle="search" type="checkbox" id="__search" autocomplete="off">
70    <label class="md-overlay" for="__drawer"></label>
71    <div data-md-component="skip">
72
73
74        <a href="#bitmap-handling" class="md-skip">
75          Skip to content
76        </a>
77
78    </div>
79    <div data-md-component="announce">
80
81    </div>
82
83      <header class="md-header" data-md-component="header">
84  <nav class="md-header__inner md-grid" aria-label="Header">
85    <a href="index.html" title="FreeType-2.12.1 API Reference" class="md-header__button md-logo" aria-label="FreeType-2.12.1 API Reference" data-md-component="logo">
86
87  <img src="images/favico.ico" alt="logo">
88
89    </a>
90    <label class="md-header__button md-icon" for="__drawer">
91      <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3V6m0 5h18v2H3v-2m0 5h18v2H3v-2z"/></svg>
92    </label>
93    <div class="md-header__title" data-md-component="header-title">
94      <div class="md-header__ellipsis">
95        <div class="md-header__topic">
96          <span class="md-ellipsis">
97            FreeType-2.12.1 API Reference
98          </span>
99        </div>
100        <div class="md-header__topic" data-md-component="header-topic">
101          <span class="md-ellipsis">
102
103              Bitmap Handling
104
105          </span>
106        </div>
107      </div>
108    </div>
109
110
111
112      <label class="md-header__button md-icon" for="__search">
113        <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5z"/></svg>
114      </label>
115
116<div class="md-search" data-md-component="search" role="dialog">
117  <label class="md-search__overlay" for="__search"></label>
118  <div class="md-search__inner" role="search">
119    <form class="md-search__form" name="search">
120      <input type="text" class="md-search__input" name="query" aria-label="Search" placeholder="Search" autocapitalize="off" autocorrect="off" autocomplete="off" spellcheck="false" data-md-component="search-query" data-md-state="active" required>
121      <label class="md-search__icon md-icon" for="__search">
122        <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5z"/></svg>
123        <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11h12z"/></svg>
124      </label>
125      <button type="reset" class="md-search__icon md-icon" aria-label="Clear" tabindex="-1">
126        <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41z"/></svg>
127      </button>
128    </form>
129    <div class="md-search__output">
130      <div class="md-search__scrollwrap" data-md-scrollfix>
131        <div class="md-search-result" data-md-component="search-result">
132          <div class="md-search-result__meta">
133            Initializing search
134          </div>
135          <ol class="md-search-result__list"></ol>
136        </div>
137      </div>
138    </div>
139  </div>
140</div>
141
142
143  </nav>
144</header>
145
146    <div class="md-container" data-md-component="container">
147
148
149
150
151      <main class="md-main" data-md-component="main">
152        <div class="md-main__inner md-grid">
153
154
155
156              <div class="md-sidebar md-sidebar--primary" data-md-component="sidebar" data-md-type="navigation" >
157                <div class="md-sidebar__scrollwrap">
158                  <div class="md-sidebar__inner">
159
160
161
162<nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0">
163  <label class="md-nav__title" for="__drawer">
164    <a href="index.html" title="FreeType-2.12.1 API Reference" class="md-nav__button md-logo" aria-label="FreeType-2.12.1 API Reference" data-md-component="logo">
165
166  <img src="images/favico.ico" alt="logo">
167
168    </a>
169    FreeType-2.12.1 API Reference
170  </label>
171
172  <ul class="md-nav__list" data-md-scrollfix>
173
174
175
176
177
178
179
180
181    <li class="md-nav__item">
182      <a href="index.html" class="md-nav__link">
183        TOC
184      </a>
185    </li>
186
187
188
189
190
191
192
193
194
195
196    <li class="md-nav__item">
197      <a href="ft2-index.html" class="md-nav__link">
198        Index
199      </a>
200    </li>
201
202
203
204
205
206
207
208
209
210
211
212    <li class="md-nav__item md-nav__item--nested">
213
214
215        <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_3" type="checkbox" id="__nav_3" >
216
217      <label class="md-nav__link" for="__nav_3">
218        General Remarks
219        <span class="md-nav__icon md-icon"></span>
220      </label>
221      <nav class="md-nav" aria-label="General Remarks" data-md-level="1">
222        <label class="md-nav__title" for="__nav_3">
223          <span class="md-nav__icon md-icon"></span>
224          General Remarks
225        </label>
226        <ul class="md-nav__list" data-md-scrollfix>
227
228
229
230
231
232    <li class="md-nav__item">
233      <a href="ft2-preamble.html" class="md-nav__link">
234        Preamble
235      </a>
236    </li>
237
238
239
240
241
242
243
244    <li class="md-nav__item">
245      <a href="ft2-header_inclusion.html" class="md-nav__link">
246        FreeType's header inclusion scheme
247      </a>
248    </li>
249
250
251
252
253
254
255
256    <li class="md-nav__item">
257      <a href="ft2-user_allocation.html" class="md-nav__link">
258        User allocation
259      </a>
260    </li>
261
262
263
264        </ul>
265      </nav>
266    </li>
267
268
269
270
271
272
273
274
275
276
277
278    <li class="md-nav__item md-nav__item--nested">
279
280
281        <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_4" type="checkbox" id="__nav_4" >
282
283      <label class="md-nav__link" for="__nav_4">
284        Core API
285        <span class="md-nav__icon md-icon"></span>
286      </label>
287      <nav class="md-nav" aria-label="Core API" data-md-level="1">
288        <label class="md-nav__title" for="__nav_4">
289          <span class="md-nav__icon md-icon"></span>
290          Core API
291        </label>
292        <ul class="md-nav__list" data-md-scrollfix>
293
294
295
296
297
298    <li class="md-nav__item">
299      <a href="ft2-version.html" class="md-nav__link">
300        FreeType Version
301      </a>
302    </li>
303
304
305
306
307
308
309
310    <li class="md-nav__item">
311      <a href="ft2-basic_types.html" class="md-nav__link">
312        Basic Data Types
313      </a>
314    </li>
315
316
317
318
319
320
321
322    <li class="md-nav__item">
323      <a href="ft2-base_interface.html" class="md-nav__link">
324        Base Interface
325      </a>
326    </li>
327
328
329
330
331
332
333
334    <li class="md-nav__item">
335      <a href="ft2-glyph_variants.html" class="md-nav__link">
336        Unicode Variation Sequences
337      </a>
338    </li>
339
340
341
342
343
344
345
346    <li class="md-nav__item">
347      <a href="ft2-color_management.html" class="md-nav__link">
348        Glyph Color Management
349      </a>
350    </li>
351
352
353
354
355
356
357
358    <li class="md-nav__item">
359      <a href="ft2-layer_management.html" class="md-nav__link">
360        Glyph Layer Management
361      </a>
362    </li>
363
364
365
366
367
368
369
370    <li class="md-nav__item">
371      <a href="ft2-glyph_management.html" class="md-nav__link">
372        Glyph Management
373      </a>
374    </li>
375
376
377
378
379
380
381
382    <li class="md-nav__item">
383      <a href="ft2-mac_specific.html" class="md-nav__link">
384        Mac Specific Interface
385      </a>
386    </li>
387
388
389
390
391
392
393
394    <li class="md-nav__item">
395      <a href="ft2-sizes_management.html" class="md-nav__link">
396        Size Management
397      </a>
398    </li>
399
400
401
402
403
404
405
406    <li class="md-nav__item">
407      <a href="ft2-header_file_macros.html" class="md-nav__link">
408        Header File Macros
409      </a>
410    </li>
411
412
413
414        </ul>
415      </nav>
416    </li>
417
418
419
420
421
422
423
424
425
426
427
428    <li class="md-nav__item md-nav__item--nested">
429
430
431        <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_5" type="checkbox" id="__nav_5" >
432
433      <label class="md-nav__link" for="__nav_5">
434        Format-Specific API
435        <span class="md-nav__icon md-icon"></span>
436      </label>
437      <nav class="md-nav" aria-label="Format-Specific API" data-md-level="1">
438        <label class="md-nav__title" for="__nav_5">
439          <span class="md-nav__icon md-icon"></span>
440          Format-Specific API
441        </label>
442        <ul class="md-nav__list" data-md-scrollfix>
443
444
445
446
447
448    <li class="md-nav__item">
449      <a href="ft2-multiple_masters.html" class="md-nav__link">
450        Multiple Masters
451      </a>
452    </li>
453
454
455
456
457
458
459
460    <li class="md-nav__item">
461      <a href="ft2-truetype_tables.html" class="md-nav__link">
462        TrueType Tables
463      </a>
464    </li>
465
466
467
468
469
470
471
472    <li class="md-nav__item">
473      <a href="ft2-type1_tables.html" class="md-nav__link">
474        Type 1 Tables
475      </a>
476    </li>
477
478
479
480
481
482
483
484    <li class="md-nav__item">
485      <a href="ft2-sfnt_names.html" class="md-nav__link">
486        SFNT Names
487      </a>
488    </li>
489
490
491
492
493
494
495
496    <li class="md-nav__item">
497      <a href="ft2-bdf_fonts.html" class="md-nav__link">
498        BDF and PCF Files
499      </a>
500    </li>
501
502
503
504
505
506
507
508    <li class="md-nav__item">
509      <a href="ft2-cid_fonts.html" class="md-nav__link">
510        CID Fonts
511      </a>
512    </li>
513
514
515
516
517
518
519
520    <li class="md-nav__item">
521      <a href="ft2-pfr_fonts.html" class="md-nav__link">
522        PFR Fonts
523      </a>
524    </li>
525
526
527
528
529
530
531
532    <li class="md-nav__item">
533      <a href="ft2-winfnt_fonts.html" class="md-nav__link">
534        Window FNT Files
535      </a>
536    </li>
537
538
539
540
541
542
543
544    <li class="md-nav__item">
545      <a href="ft2-svg_fonts.html" class="md-nav__link">
546        OpenType SVG Fonts
547      </a>
548    </li>
549
550
551
552
553
554
555
556    <li class="md-nav__item">
557      <a href="ft2-font_formats.html" class="md-nav__link">
558        Font Formats
559      </a>
560    </li>
561
562
563
564
565
566
567
568    <li class="md-nav__item">
569      <a href="ft2-gasp_table.html" class="md-nav__link">
570        Gasp Table
571      </a>
572    </li>
573
574
575
576        </ul>
577      </nav>
578    </li>
579
580
581
582
583
584
585
586
587
588
589
590    <li class="md-nav__item md-nav__item--nested">
591
592
593        <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_6" type="checkbox" id="__nav_6" >
594
595      <label class="md-nav__link" for="__nav_6">
596        Controlling FreeType Modules
597        <span class="md-nav__icon md-icon"></span>
598      </label>
599      <nav class="md-nav" aria-label="Controlling FreeType Modules" data-md-level="1">
600        <label class="md-nav__title" for="__nav_6">
601          <span class="md-nav__icon md-icon"></span>
602          Controlling FreeType Modules
603        </label>
604        <ul class="md-nav__list" data-md-scrollfix>
605
606
607
608
609
610    <li class="md-nav__item">
611      <a href="ft2-auto_hinter.html" class="md-nav__link">
612        The auto-hinter
613      </a>
614    </li>
615
616
617
618
619
620
621
622    <li class="md-nav__item">
623      <a href="ft2-cff_driver.html" class="md-nav__link">
624        The CFF driver
625      </a>
626    </li>
627
628
629
630
631
632
633
634    <li class="md-nav__item">
635      <a href="ft2-t1_cid_driver.html" class="md-nav__link">
636        The Type 1 and CID drivers
637      </a>
638    </li>
639
640
641
642
643
644
645
646    <li class="md-nav__item">
647      <a href="ft2-tt_driver.html" class="md-nav__link">
648        The TrueType driver
649      </a>
650    </li>
651
652
653
654
655
656
657
658    <li class="md-nav__item">
659      <a href="ft2-pcf_driver.html" class="md-nav__link">
660        The PCF driver
661      </a>
662    </li>
663
664
665
666
667
668
669
670    <li class="md-nav__item">
671      <a href="ft2-ot_svg_driver.html" class="md-nav__link">
672        The SVG driver
673      </a>
674    </li>
675
676
677
678
679
680
681
682    <li class="md-nav__item">
683      <a href="ft2-properties.html" class="md-nav__link">
684        Driver properties
685      </a>
686    </li>
687
688
689
690
691
692
693
694    <li class="md-nav__item">
695      <a href="ft2-parameter_tags.html" class="md-nav__link">
696        Parameter Tags
697      </a>
698    </li>
699
700
701
702
703
704
705
706    <li class="md-nav__item">
707      <a href="ft2-lcd_rendering.html" class="md-nav__link">
708        Subpixel Rendering
709      </a>
710    </li>
711
712
713
714        </ul>
715      </nav>
716    </li>
717
718
719
720
721
722
723
724
725
726
727
728    <li class="md-nav__item md-nav__item--nested">
729
730
731        <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_7" type="checkbox" id="__nav_7" >
732
733      <label class="md-nav__link" for="__nav_7">
734        Cache Sub-System
735        <span class="md-nav__icon md-icon"></span>
736      </label>
737      <nav class="md-nav" aria-label="Cache Sub-System" data-md-level="1">
738        <label class="md-nav__title" for="__nav_7">
739          <span class="md-nav__icon md-icon"></span>
740          Cache Sub-System
741        </label>
742        <ul class="md-nav__list" data-md-scrollfix>
743
744
745
746
747
748    <li class="md-nav__item">
749      <a href="ft2-cache_subsystem.html" class="md-nav__link">
750        Cache Sub-System
751      </a>
752    </li>
753
754
755
756        </ul>
757      </nav>
758    </li>
759
760
761
762
763
764
765
766
767
768
769
770
771
772    <li class="md-nav__item md-nav__item--active md-nav__item--nested">
773
774
775        <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_8" type="checkbox" id="__nav_8" checked>
776
777      <label class="md-nav__link" for="__nav_8">
778        Support API
779        <span class="md-nav__icon md-icon"></span>
780      </label>
781      <nav class="md-nav" aria-label="Support API" data-md-level="1">
782        <label class="md-nav__title" for="__nav_8">
783          <span class="md-nav__icon md-icon"></span>
784          Support API
785        </label>
786        <ul class="md-nav__list" data-md-scrollfix>
787
788
789
790
791
792    <li class="md-nav__item">
793      <a href="ft2-computations.html" class="md-nav__link">
794        Computations
795      </a>
796    </li>
797
798
799
800
801
802
803
804    <li class="md-nav__item">
805      <a href="ft2-list_processing.html" class="md-nav__link">
806        List Processing
807      </a>
808    </li>
809
810
811
812
813
814
815
816    <li class="md-nav__item">
817      <a href="ft2-outline_processing.html" class="md-nav__link">
818        Outline Processing
819      </a>
820    </li>
821
822
823
824
825
826
827
828    <li class="md-nav__item">
829      <a href="ft2-quick_advance.html" class="md-nav__link">
830        Quick retrieval of advance values
831      </a>
832    </li>
833
834
835
836
837
838
839
840
841
842    <li class="md-nav__item md-nav__item--active">
843
844      <input class="md-nav__toggle md-toggle" data-md-toggle="toc" type="checkbox" id="__toc">
845
846
847
848
849
850        <label class="md-nav__link md-nav__link--active" for="__toc">
851          Bitmap Handling
852          <span class="md-nav__icon md-icon"></span>
853        </label>
854
855      <a href="ft2-bitmap_handling.html" class="md-nav__link md-nav__link--active">
856        Bitmap Handling
857      </a>
858
859
860<nav class="md-nav md-nav--secondary" aria-label="Table of contents">
861
862
863
864
865
866
867    <label class="md-nav__title" for="__toc">
868      <span class="md-nav__icon md-icon"></span>
869      Table of contents
870    </label>
871    <ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
872
873        <li class="md-nav__item">
874  <a href="#synopsis" class="md-nav__link">
875    Synopsis
876  </a>
877
878</li>
879
880        <li class="md-nav__item">
881  <a href="#ft_bitmap_init" class="md-nav__link">
882    FT_Bitmap_Init
883  </a>
884
885</li>
886
887        <li class="md-nav__item">
888  <a href="#ft_bitmap_copy" class="md-nav__link">
889    FT_Bitmap_Copy
890  </a>
891
892</li>
893
894        <li class="md-nav__item">
895  <a href="#ft_bitmap_embolden" class="md-nav__link">
896    FT_Bitmap_Embolden
897  </a>
898
899</li>
900
901        <li class="md-nav__item">
902  <a href="#ft_bitmap_convert" class="md-nav__link">
903    FT_Bitmap_Convert
904  </a>
905
906</li>
907
908        <li class="md-nav__item">
909  <a href="#ft_bitmap_blend" class="md-nav__link">
910    FT_Bitmap_Blend
911  </a>
912
913</li>
914
915        <li class="md-nav__item">
916  <a href="#ft_glyphslot_own_bitmap" class="md-nav__link">
917    FT_GlyphSlot_Own_Bitmap
918  </a>
919
920</li>
921
922        <li class="md-nav__item">
923  <a href="#ft_bitmap_done" class="md-nav__link">
924    FT_Bitmap_Done
925  </a>
926
927</li>
928
929    </ul>
930
931</nav>
932
933    </li>
934
935
936
937
938
939
940
941    <li class="md-nav__item">
942      <a href="ft2-raster.html" class="md-nav__link">
943        Scanline Converter
944      </a>
945    </li>
946
947
948
949
950
951
952
953    <li class="md-nav__item">
954      <a href="ft2-glyph_stroker.html" class="md-nav__link">
955        Glyph Stroker
956      </a>
957    </li>
958
959
960
961
962
963
964
965    <li class="md-nav__item">
966      <a href="ft2-system_interface.html" class="md-nav__link">
967        System Interface
968      </a>
969    </li>
970
971
972
973
974
975
976
977    <li class="md-nav__item">
978      <a href="ft2-module_management.html" class="md-nav__link">
979        Module Management
980      </a>
981    </li>
982
983
984
985
986
987
988
989    <li class="md-nav__item">
990      <a href="ft2-gzip.html" class="md-nav__link">
991        GZIP Streams
992      </a>
993    </li>
994
995
996
997
998
999
1000
1001    <li class="md-nav__item">
1002      <a href="ft2-lzw.html" class="md-nav__link">
1003        LZW Streams
1004      </a>
1005    </li>
1006
1007
1008
1009
1010
1011
1012
1013    <li class="md-nav__item">
1014      <a href="ft2-bzip2.html" class="md-nav__link">
1015        BZIP2 Streams
1016      </a>
1017    </li>
1018
1019
1020
1021
1022
1023
1024
1025    <li class="md-nav__item">
1026      <a href="ft2-debugging_apis.html" class="md-nav__link">
1027        External Debugging APIs
1028      </a>
1029    </li>
1030
1031
1032
1033        </ul>
1034      </nav>
1035    </li>
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047    <li class="md-nav__item md-nav__item--nested">
1048
1049
1050        <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_9" type="checkbox" id="__nav_9" >
1051
1052      <label class="md-nav__link" for="__nav_9">
1053        Error Codes
1054        <span class="md-nav__icon md-icon"></span>
1055      </label>
1056      <nav class="md-nav" aria-label="Error Codes" data-md-level="1">
1057        <label class="md-nav__title" for="__nav_9">
1058          <span class="md-nav__icon md-icon"></span>
1059          Error Codes
1060        </label>
1061        <ul class="md-nav__list" data-md-scrollfix>
1062
1063
1064
1065
1066
1067    <li class="md-nav__item">
1068      <a href="ft2-error_enumerations.html" class="md-nav__link">
1069        Error Enumerations
1070      </a>
1071    </li>
1072
1073
1074
1075
1076
1077
1078
1079    <li class="md-nav__item">
1080      <a href="ft2-error_code_values.html" class="md-nav__link">
1081        Error Code Values
1082      </a>
1083    </li>
1084
1085
1086
1087        </ul>
1088      </nav>
1089    </li>
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101    <li class="md-nav__item md-nav__item--nested">
1102
1103
1104        <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_10" type="checkbox" id="__nav_10" >
1105
1106      <label class="md-nav__link" for="__nav_10">
1107        Miscellaneous
1108        <span class="md-nav__icon md-icon"></span>
1109      </label>
1110      <nav class="md-nav" aria-label="Miscellaneous" data-md-level="1">
1111        <label class="md-nav__title" for="__nav_10">
1112          <span class="md-nav__icon md-icon"></span>
1113          Miscellaneous
1114        </label>
1115        <ul class="md-nav__list" data-md-scrollfix>
1116
1117
1118
1119
1120
1121    <li class="md-nav__item">
1122      <a href="ft2-gx_validation.html" class="md-nav__link">
1123        TrueTypeGX/AAT Validation
1124      </a>
1125    </li>
1126
1127
1128
1129
1130
1131
1132
1133    <li class="md-nav__item">
1134      <a href="ft2-incremental.html" class="md-nav__link">
1135        Incremental Loading
1136      </a>
1137    </li>
1138
1139
1140
1141
1142
1143
1144
1145    <li class="md-nav__item">
1146      <a href="ft2-truetype_engine.html" class="md-nav__link">
1147        The TrueType Engine
1148      </a>
1149    </li>
1150
1151
1152
1153
1154
1155
1156
1157    <li class="md-nav__item">
1158      <a href="ft2-ot_validation.html" class="md-nav__link">
1159        OpenType Validation
1160      </a>
1161    </li>
1162
1163
1164
1165        </ul>
1166      </nav>
1167    </li>
1168
1169
1170
1171  </ul>
1172</nav>
1173                  </div>
1174                </div>
1175              </div>
1176
1177
1178
1179              <div class="md-sidebar md-sidebar--secondary" data-md-component="sidebar" data-md-type="toc" >
1180                <div class="md-sidebar__scrollwrap">
1181                  <div class="md-sidebar__inner">
1182
1183<nav class="md-nav md-nav--secondary" aria-label="Table of contents">
1184
1185
1186
1187
1188
1189
1190    <label class="md-nav__title" for="__toc">
1191      <span class="md-nav__icon md-icon"></span>
1192      Table of contents
1193    </label>
1194    <ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
1195
1196        <li class="md-nav__item">
1197  <a href="#synopsis" class="md-nav__link">
1198    Synopsis
1199  </a>
1200
1201</li>
1202
1203        <li class="md-nav__item">
1204  <a href="#ft_bitmap_init" class="md-nav__link">
1205    FT_Bitmap_Init
1206  </a>
1207
1208</li>
1209
1210        <li class="md-nav__item">
1211  <a href="#ft_bitmap_copy" class="md-nav__link">
1212    FT_Bitmap_Copy
1213  </a>
1214
1215</li>
1216
1217        <li class="md-nav__item">
1218  <a href="#ft_bitmap_embolden" class="md-nav__link">
1219    FT_Bitmap_Embolden
1220  </a>
1221
1222</li>
1223
1224        <li class="md-nav__item">
1225  <a href="#ft_bitmap_convert" class="md-nav__link">
1226    FT_Bitmap_Convert
1227  </a>
1228
1229</li>
1230
1231        <li class="md-nav__item">
1232  <a href="#ft_bitmap_blend" class="md-nav__link">
1233    FT_Bitmap_Blend
1234  </a>
1235
1236</li>
1237
1238        <li class="md-nav__item">
1239  <a href="#ft_glyphslot_own_bitmap" class="md-nav__link">
1240    FT_GlyphSlot_Own_Bitmap
1241  </a>
1242
1243</li>
1244
1245        <li class="md-nav__item">
1246  <a href="#ft_bitmap_done" class="md-nav__link">
1247    FT_Bitmap_Done
1248  </a>
1249
1250</li>
1251
1252    </ul>
1253
1254</nav>
1255                  </div>
1256                </div>
1257              </div>
1258
1259
1260          <div class="md-content" data-md-component="content">
1261            <article class="md-content__inner md-typeset">
1262
1263
1264
1265                <p><a href="https://www.freetype.org">FreeType</a> &raquo; <a href="../">Docs</a> &raquo; <a href="index.html#support-api">Support API</a> &raquo; Bitmap Handling</p>
1266<hr />
1267<h1 id="bitmap-handling">Bitmap Handling<a class="headerlink" href="#bitmap-handling" title="Permanent link">&para;</a></h1>
1268<h2 id="synopsis">Synopsis<a class="headerlink" href="#synopsis" title="Permanent link">&para;</a></h2>
1269<p>This section contains functions for handling <code><a href="ft2-basic_types.html#ft_bitmap">FT_Bitmap</a></code> objects, automatically adjusting the target's bitmap buffer size as needed.</p>
1270<p>Note that none of the functions changes the bitmap's &lsquo;flow&rsquo; (as indicated by the sign of the <code>pitch</code> field in <code><a href="ft2-basic_types.html#ft_bitmap">FT_Bitmap</a></code>).</p>
1271<p>To set the flow, assign an appropriate positive or negative value to the <code>pitch</code> field of the target <code><a href="ft2-basic_types.html#ft_bitmap">FT_Bitmap</a></code> object after calling <code><a href="ft2-bitmap_handling.html#ft_bitmap_init">FT_Bitmap_Init</a></code> but before calling any of the other functions described here.</p>
1272<h2 id="ft_bitmap_init">FT_Bitmap_Init<a class="headerlink" href="#ft_bitmap_init" title="Permanent link">&para;</a></h2>
1273<p>Defined in FT_BITMAP_H (freetype/ftbitmap.h).</p>
1274<div class = "codehilite"><pre><code>  FT_EXPORT( <span class="keyword">void</span> )
1275  <b>FT_Bitmap_Init</b>( <a href="ft2-basic_types.html#ft_bitmap">FT_Bitmap</a>  *abitmap );
1276
1277
1278  /* deprecated */
1279  FT_EXPORT( <span class="keyword">void</span> )
1280  FT_Bitmap_New( <a href="ft2-basic_types.html#ft_bitmap">FT_Bitmap</a>  *abitmap );
1281</code></pre></div>
1282
1283<p>Initialize a pointer to an <code><a href="ft2-basic_types.html#ft_bitmap">FT_Bitmap</a></code> structure.</p>
1284<h4>inout</h4>
1285<table class="fields">
1286<tr><td class="val" id="abitmap">abitmap</td><td class="desc">
1287<p>A pointer to the bitmap structure.</p>
1288</td></tr>
1289</table>
1290
1291<h4>note</h4>
1292
1293<p>A deprecated name for the same function is <code>FT_Bitmap_New</code>.</p>
1294<hr>
1295
1296<h2 id="ft_bitmap_copy">FT_Bitmap_Copy<a class="headerlink" href="#ft_bitmap_copy" title="Permanent link">&para;</a></h2>
1297<p>Defined in FT_BITMAP_H (freetype/ftbitmap.h).</p>
1298<div class = "codehilite"><pre><code>  FT_EXPORT( <a href="ft2-basic_types.html#ft_error">FT_Error</a> )
1299  <b>FT_Bitmap_Copy</b>( <a href="ft2-base_interface.html#ft_library">FT_Library</a>        library,
1300                  <span class="keyword">const</span> <a href="ft2-basic_types.html#ft_bitmap">FT_Bitmap</a>  *source,
1301                  <a href="ft2-basic_types.html#ft_bitmap">FT_Bitmap</a>        *target );
1302</code></pre></div>
1303
1304<p>Copy a bitmap into another one.</p>
1305<h4>input</h4>
1306<table class="fields">
1307<tr><td class="val" id="library">library</td><td class="desc">
1308<p>A handle to a library object.</p>
1309</td></tr>
1310<tr><td class="val" id="source">source</td><td class="desc">
1311<p>A handle to the source bitmap.</p>
1312</td></tr>
1313</table>
1314
1315<h4>output</h4>
1316<table class="fields">
1317<tr><td class="val" id="target">target</td><td class="desc">
1318<p>A handle to the target bitmap.</p>
1319</td></tr>
1320</table>
1321
1322<h4>return</h4>
1323
1324<p>FreeType error code. 0&nbsp;means success.</p>
1325<h4>note</h4>
1326
1327<p><code>source-&gt;buffer</code> and <code>target-&gt;buffer</code> must neither be equal nor overlap.</p>
1328<hr>
1329
1330<h2 id="ft_bitmap_embolden">FT_Bitmap_Embolden<a class="headerlink" href="#ft_bitmap_embolden" title="Permanent link">&para;</a></h2>
1331<p>Defined in FT_BITMAP_H (freetype/ftbitmap.h).</p>
1332<div class = "codehilite"><pre><code>  FT_EXPORT( <a href="ft2-basic_types.html#ft_error">FT_Error</a> )
1333  <b>FT_Bitmap_Embolden</b>( <a href="ft2-base_interface.html#ft_library">FT_Library</a>  library,
1334                      <a href="ft2-basic_types.html#ft_bitmap">FT_Bitmap</a>*  bitmap,
1335                      <a href="ft2-basic_types.html#ft_pos">FT_Pos</a>      xStrength,
1336                      <a href="ft2-basic_types.html#ft_pos">FT_Pos</a>      yStrength );
1337</code></pre></div>
1338
1339<p>Embolden a bitmap. The new bitmap will be about <code>xStrength</code> pixels wider and <code>yStrength</code> pixels higher. The left and bottom borders are kept unchanged.</p>
1340<h4>input</h4>
1341<table class="fields">
1342<tr><td class="val" id="library">library</td><td class="desc">
1343<p>A handle to a library object.</p>
1344</td></tr>
1345<tr><td class="val" id="xstrength">xStrength</td><td class="desc">
1346<p>How strong the glyph is emboldened horizontally. Expressed in 26.6 pixel format.</p>
1347</td></tr>
1348<tr><td class="val" id="ystrength">yStrength</td><td class="desc">
1349<p>How strong the glyph is emboldened vertically. Expressed in 26.6 pixel format.</p>
1350</td></tr>
1351</table>
1352
1353<h4>inout</h4>
1354<table class="fields">
1355<tr><td class="val" id="bitmap">bitmap</td><td class="desc">
1356<p>A handle to the target bitmap.</p>
1357</td></tr>
1358</table>
1359
1360<h4>return</h4>
1361
1362<p>FreeType error code. 0&nbsp;means success.</p>
1363<h4>note</h4>
1364
1365<p>The current implementation restricts <code>xStrength</code> to be less than or equal to&nbsp;8 if bitmap is of pixel_mode <code><a href="ft2-basic_types.html#ft_pixel_mode">FT_PIXEL_MODE_MONO</a></code>.</p>
1366<p>If you want to embolden the bitmap owned by a <code><a href="ft2-base_interface.html#ft_glyphslotrec">FT_GlyphSlotRec</a></code>, you should call <code><a href="ft2-bitmap_handling.html#ft_glyphslot_own_bitmap">FT_GlyphSlot_Own_Bitmap</a></code> on the slot first.</p>
1367<p>Bitmaps in <code><a href="ft2-basic_types.html#ft_pixel_mode">FT_PIXEL_MODE_GRAY2</a></code> and <code><a href="ft2-basic_types.html#ft_pixel_mode">FT_PIXEL_MODE_GRAY</a></code>@ format are converted to <code><a href="ft2-basic_types.html#ft_pixel_mode">FT_PIXEL_MODE_GRAY</a></code> format (i.e., 8bpp).</p>
1368<hr>
1369
1370<h2 id="ft_bitmap_convert">FT_Bitmap_Convert<a class="headerlink" href="#ft_bitmap_convert" title="Permanent link">&para;</a></h2>
1371<p>Defined in FT_BITMAP_H (freetype/ftbitmap.h).</p>
1372<div class = "codehilite"><pre><code>  FT_EXPORT( <a href="ft2-basic_types.html#ft_error">FT_Error</a> )
1373  <b>FT_Bitmap_Convert</b>( <a href="ft2-base_interface.html#ft_library">FT_Library</a>        library,
1374                     <span class="keyword">const</span> <a href="ft2-basic_types.html#ft_bitmap">FT_Bitmap</a>  *source,
1375                     <a href="ft2-basic_types.html#ft_bitmap">FT_Bitmap</a>        *target,
1376                     <a href="ft2-basic_types.html#ft_int">FT_Int</a>            alignment );
1377</code></pre></div>
1378
1379<p>Convert a bitmap object with depth 1bpp, 2bpp, 4bpp, 8bpp or 32bpp to a bitmap object with depth 8bpp, making the number of used bytes per line (a.k.a. the &lsquo;pitch&rsquo;) a multiple of <code>alignment</code>.</p>
1380<h4>input</h4>
1381<table class="fields">
1382<tr><td class="val" id="library">library</td><td class="desc">
1383<p>A handle to a library object.</p>
1384</td></tr>
1385<tr><td class="val" id="source">source</td><td class="desc">
1386<p>The source bitmap.</p>
1387</td></tr>
1388<tr><td class="val" id="alignment">alignment</td><td class="desc">
1389<p>The pitch of the bitmap is a multiple of this argument. Common values are 1, 2, or 4.</p>
1390</td></tr>
1391</table>
1392
1393<h4>output</h4>
1394<table class="fields">
1395<tr><td class="val" id="target">target</td><td class="desc">
1396<p>The target bitmap.</p>
1397</td></tr>
1398</table>
1399
1400<h4>return</h4>
1401
1402<p>FreeType error code. 0&nbsp;means success.</p>
1403<h4>note</h4>
1404
1405<p>It is possible to call <code><a href="ft2-bitmap_handling.html#ft_bitmap_convert">FT_Bitmap_Convert</a></code> multiple times without calling <code><a href="ft2-bitmap_handling.html#ft_bitmap_done">FT_Bitmap_Done</a></code> (the memory is simply reallocated).</p>
1406<p>Use <code><a href="ft2-bitmap_handling.html#ft_bitmap_done">FT_Bitmap_Done</a></code> to finally remove the bitmap object.</p>
1407<p>The <code>library</code> argument is taken to have access to FreeType's memory handling functions.</p>
1408<p><code>source-&gt;buffer</code> and <code>target-&gt;buffer</code> must neither be equal nor overlap.</p>
1409<hr>
1410
1411<h2 id="ft_bitmap_blend">FT_Bitmap_Blend<a class="headerlink" href="#ft_bitmap_blend" title="Permanent link">&para;</a></h2>
1412<p>Defined in FT_BITMAP_H (freetype/ftbitmap.h).</p>
1413<div class = "codehilite"><pre><code>  FT_EXPORT( <a href="ft2-basic_types.html#ft_error">FT_Error</a> )
1414  <b>FT_Bitmap_Blend</b>( <a href="ft2-base_interface.html#ft_library">FT_Library</a>         library,
1415                   <span class="keyword">const</span> <a href="ft2-basic_types.html#ft_bitmap">FT_Bitmap</a>*   source,
1416                   <span class="keyword">const</span> <a href="ft2-basic_types.html#ft_vector">FT_Vector</a>    source_offset,
1417                   <a href="ft2-basic_types.html#ft_bitmap">FT_Bitmap</a>*         target,
1418                   <a href="ft2-basic_types.html#ft_vector">FT_Vector</a>         *atarget_offset,
1419                   <a href="ft2-color_management.html#ft_color">FT_Color</a>           color );
1420</code></pre></div>
1421
1422<p>Blend a bitmap onto another bitmap, using a given color.</p>
1423<h4>input</h4>
1424<table class="fields">
1425<tr><td class="val" id="library">library</td><td class="desc">
1426<p>A handle to a library object.</p>
1427</td></tr>
1428<tr><td class="val" id="source">source</td><td class="desc">
1429<p>The source bitmap, which can have any <code><a href="ft2-basic_types.html#ft_pixel_mode">FT_Pixel_Mode</a></code> format.</p>
1430</td></tr>
1431<tr><td class="val" id="source_offset">source_offset</td><td class="desc">
1432<p>The offset vector to the upper left corner of the source bitmap in 26.6 pixel format. It should represent an integer offset; the function will set the lowest six bits to zero to enforce that.</p>
1433</td></tr>
1434<tr><td class="val" id="color">color</td><td class="desc">
1435<p>The color used to draw <code>source</code> onto <code>target</code>.</p>
1436</td></tr>
1437</table>
1438
1439<h4>inout</h4>
1440<table class="fields">
1441<tr><td class="val" id="target">target</td><td class="desc">
1442<p>A handle to an <code>FT_Bitmap</code> object. It should be either initialized as empty with a call to <code><a href="ft2-bitmap_handling.html#ft_bitmap_init">FT_Bitmap_Init</a></code>, or it should be of type <code><a href="ft2-basic_types.html#ft_pixel_mode">FT_PIXEL_MODE_BGRA</a></code>.</p>
1443</td></tr>
1444<tr><td class="val" id="atarget_offset">atarget_offset</td><td class="desc">
1445<p>The offset vector to the upper left corner of the target bitmap in 26.6 pixel format. It should represent an integer offset; the function will set the lowest six bits to zero to enforce that.</p>
1446</td></tr>
1447</table>
1448
1449<h4>return</h4>
1450
1451<p>FreeType error code. 0&nbsp;means success.</p>
1452<h4>note</h4>
1453
1454<p>This function doesn't perform clipping.</p>
1455<p>The bitmap in <code>target</code> gets allocated or reallocated as needed; the vector <code>atarget_offset</code> is updated accordingly.</p>
1456<p>In case of allocation or reallocation, the bitmap's pitch is set to <code>4 * width</code>. Both <code>source</code> and <code>target</code> must have the same bitmap flow (as indicated by the sign of the <code>pitch</code> field).</p>
1457<p><code>source-&gt;buffer</code> and <code>target-&gt;buffer</code> must neither be equal nor overlap.</p>
1458<h4>since</h4>
1459
1460<p>2.10</p>
1461<hr>
1462
1463<h2 id="ft_glyphslot_own_bitmap">FT_GlyphSlot_Own_Bitmap<a class="headerlink" href="#ft_glyphslot_own_bitmap" title="Permanent link">&para;</a></h2>
1464<p>Defined in FT_BITMAP_H (freetype/ftbitmap.h).</p>
1465<div class = "codehilite"><pre><code>  FT_EXPORT( <a href="ft2-basic_types.html#ft_error">FT_Error</a> )
1466  <b>FT_GlyphSlot_Own_Bitmap</b>( <a href="ft2-base_interface.html#ft_glyphslot">FT_GlyphSlot</a>  slot );
1467</code></pre></div>
1468
1469<p>Make sure that a glyph slot owns <code>slot-&gt;bitmap</code>.</p>
1470<h4>input</h4>
1471<table class="fields">
1472<tr><td class="val" id="slot">slot</td><td class="desc">
1473<p>The glyph slot.</p>
1474</td></tr>
1475</table>
1476
1477<h4>return</h4>
1478
1479<p>FreeType error code. 0&nbsp;means success.</p>
1480<h4>note</h4>
1481
1482<p>This function is to be used in combination with <code><a href="ft2-bitmap_handling.html#ft_bitmap_embolden">FT_Bitmap_Embolden</a></code>.</p>
1483<hr>
1484
1485<h2 id="ft_bitmap_done">FT_Bitmap_Done<a class="headerlink" href="#ft_bitmap_done" title="Permanent link">&para;</a></h2>
1486<p>Defined in FT_BITMAP_H (freetype/ftbitmap.h).</p>
1487<div class = "codehilite"><pre><code>  FT_EXPORT( <a href="ft2-basic_types.html#ft_error">FT_Error</a> )
1488  <b>FT_Bitmap_Done</b>( <a href="ft2-base_interface.html#ft_library">FT_Library</a>  library,
1489                  <a href="ft2-basic_types.html#ft_bitmap">FT_Bitmap</a>  *bitmap );
1490</code></pre></div>
1491
1492<p>Destroy a bitmap object initialized with <code><a href="ft2-bitmap_handling.html#ft_bitmap_init">FT_Bitmap_Init</a></code>.</p>
1493<h4>input</h4>
1494<table class="fields">
1495<tr><td class="val" id="library">library</td><td class="desc">
1496<p>A handle to a library object.</p>
1497</td></tr>
1498<tr><td class="val" id="bitmap">bitmap</td><td class="desc">
1499<p>The bitmap object to be freed.</p>
1500</td></tr>
1501</table>
1502
1503<h4>return</h4>
1504
1505<p>FreeType error code. 0&nbsp;means success.</p>
1506<h4>note</h4>
1507
1508<p>The <code>library</code> argument is taken to have access to FreeType's memory handling functions.</p>
1509<hr>
1510
1511
1512
1513
1514
1515
1516
1517            </article>
1518          </div>
1519        </div>
1520
1521      </main>
1522
1523
1524<footer class="md-footer">
1525
1526    <nav class="md-footer__inner md-grid" aria-label="Footer">
1527
1528
1529        <a href="ft2-quick_advance.html" class="md-footer__link md-footer__link--prev" aria-label="Previous: Quick retrieval of advance values" rel="prev">
1530          <div class="md-footer__button md-icon">
1531            <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11h12z"/></svg>
1532          </div>
1533          <div class="md-footer__title">
1534            <div class="md-ellipsis">
1535              <span class="md-footer__direction">
1536                Previous
1537              </span>
1538              Quick retrieval of advance values
1539            </div>
1540          </div>
1541        </a>
1542
1543
1544
1545        <a href="ft2-raster.html" class="md-footer__link md-footer__link--next" aria-label="Next: Scanline Converter" rel="next">
1546          <div class="md-footer__title">
1547            <div class="md-ellipsis">
1548              <span class="md-footer__direction">
1549                Next
1550              </span>
1551              Scanline Converter
1552            </div>
1553          </div>
1554          <div class="md-footer__button md-icon">
1555            <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M4 11v2h12l-5.5 5.5 1.42 1.42L19.84 12l-7.92-7.92L10.5 5.5 16 11H4z"/></svg>
1556          </div>
1557        </a>
1558
1559    </nav>
1560
1561  <div class="md-footer-meta md-typeset">
1562    <div class="md-footer-meta__inner md-grid">
1563      <div class="md-footer-copyright">
1564
1565          <div class="md-footer-copyright__highlight">
1566            Copyright 2022 <a href = "https://www.freetype.org/license.html">The FreeType Project</a>.
1567          </div>
1568
1569        Made with
1570        <a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener">
1571          Material for MkDocs
1572        </a>
1573
1574      </div>
1575
1576    </div>
1577  </div>
1578</footer>
1579
1580    </div>
1581    <div class="md-dialog" data-md-component="dialog">
1582      <div class="md-dialog__inner md-typeset"></div>
1583    </div>
1584    <script id="__config" type="application/json">{"base": ".", "features": [], "translations": {"clipboard.copy": "Copy to clipboard", "clipboard.copied": "Copied to clipboard", "search.config.lang": "en", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Search", "search.result.placeholder": "Type to start searching", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.term.missing": "Missing", "select.version.title": "Select version"}, "search": "assets/javascripts/workers/search.477d984a.min.js", "version": null}</script>
1585
1586
1587      <script src="assets/javascripts/bundle.82b56eb2.min.js"></script>
1588
1589        <script src="javascripts/extra.js"></script>
1590
1591
1592  </body>
1593</html>