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