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> » <a href="../">Docs</a> » <a href="index.html#support-api">Support API</a> » Bitmap Handling</p> 1266<hr /> 1267<h1 id="bitmap-handling">Bitmap Handling<a class="headerlink" href="#bitmap-handling" title="Permanent link">¶</a></h1> 1268<h2 id="synopsis">Synopsis<a class="headerlink" href="#synopsis" title="Permanent link">¶</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 ‘flow’ (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">¶</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">¶</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 means success.</p> 1325<h4>note</h4> 1326 1327<p><code>source->buffer</code> and <code>target->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">¶</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 means success.</p> 1363<h4>note</h4> 1364 1365<p>The current implementation restricts <code>xStrength</code> to be less than or equal to 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">¶</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 ‘pitch’) 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 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->buffer</code> and <code>target->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">¶</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 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->buffer</code> and <code>target->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">¶</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->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 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">¶</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 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>