|
33 | 33 |
|
34 | 34 | Limitation: Surface.create_for_data is not in the "python 3, pycairo < 1.11" combo.
|
35 | 35 | '''
|
36 |
| -from freetype import FT_PIXEL_MODE_MONO, FT_PIXEL_MODE_GRAY, FT_Pointer, FT_Bitmap |
| 36 | +from freetype import FT_PIXEL_MODE_MONO, FT_PIXEL_MODE_GRAY, FT_PIXEL_MODE_BGRA, FT_Pointer, FT_Bitmap |
37 | 37 | #from freetype import get_handle, FT_Bitmap_Init, FT_Bitmap_Convert, FT_Exception
|
38 | 38 |
|
39 |
| -from cairo import ImageSurface, FORMAT_A1, FORMAT_A8 |
40 |
| -#from cairocffi import ImageSurface, FORMAT_A1, FORMAT_A8 |
| 39 | +from cairo import ImageSurface, FORMAT_A1, FORMAT_A8, FORMAT_ARGB32 |
| 40 | +#from cairocffi import ImageSurface, FORMAT_A1, FORMAT_A8, FORMAT_ARGB32 |
41 | 41 |
|
42 | 42 | from array import array
|
43 | 43 | from ctypes import cast, memmove, CDLL, c_void_p, c_int, byref
|
@@ -67,6 +67,8 @@ def make_image_surface(bitmap, copy = True) :
|
67 | 67 | cairo_format = FORMAT_A1
|
68 | 68 | elif content.pixel_mode == FT_PIXEL_MODE_GRAY :
|
69 | 69 | cairo_format = FORMAT_A8
|
| 70 | + elif content.pixel_mode == FT_PIXEL_MODE_BGRA : # small-endian |
| 71 | + cairo_format = FORMAT_ARGB32 # platform native |
70 | 72 | else :
|
71 | 73 | raise NotImplementedError("unsupported bitmap format %d" % content.pixel_mode)
|
72 | 74 | src_pitch = content.pitch
|
|
0 commit comments