Hide keyboard shortcuts

Hot-keys on this page

r m x p   toggle line displays

j k   next/prev highlighted chunk

0   (zero) top of page

1   (one) first highlighted chunk

1""":mod:`wand.cdefs.core` --- MagickCore definitions 

2~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 

3 

4.. versionadded:: 0.5.0 

5""" 

6from ctypes import POINTER, c_void_p, c_char_p, c_int, c_size_t 

7from wand.cdefs.wandtypes import c_magick_char_p, c_ssize_t 

8 

9__all__ = ('load', 'load_with_version') 

10 

11 

12def load(libmagick): 

13 """Define MagickCore methods. 

14 We'll only define the bare-minimum methods to support the MagickWand 

15 library. 

16 

17 .. seealso:: 

18 

19 #include <magick/MagickCore.h> 

20 // Or 

21 #include <MagickCore/MagickCore.h> 

22 

23 :param libmagick: the loaded ``MagickCore`` library. 

24 :type libmagick: :class:`ctypes.CDLL` 

25 

26 .. versionadded:: 0.5.0 

27 

28 """ 

29 libmagick.AcquireExceptionInfo.argtypes = [] 

30 libmagick.AcquireExceptionInfo.restype = c_void_p 

31 libmagick.CloneImages.argtypes = [c_void_p, c_char_p, c_void_p] 

32 libmagick.CloneImages.restype = c_void_p 

33 libmagick.DestroyExceptionInfo.argtypes = [c_void_p] 

34 libmagick.DestroyExceptionInfo.restype = c_void_p 

35 libmagick.DestroyImage.argtypes = [c_void_p] 

36 libmagick.DestroyImage.restype = c_void_p 

37 try: 

38 libmagick.GetGeometry.argtypes = [c_char_p, 

39 POINTER(c_ssize_t), 

40 POINTER(c_ssize_t), 

41 POINTER(c_size_t), 

42 POINTER(c_size_t)] 

43 libmagick.GetGeometry.restype = c_int 

44 except AttributeError: 

45 libmagick.GetGeometry = None 

46 libmagick.GetMagickCopyright.argtypes = [] 

47 libmagick.GetMagickCopyright.restype = c_char_p 

48 try: 

49 libmagick.GetMagickDelegates.argtypes = [] 

50 libmagick.GetMagickDelegates.restype = c_char_p 

51 except AttributeError: 

52 libmagick.GetMagickDelegates = None 

53 libmagick.GetMagickFeatures.argtypes = [] 

54 libmagick.GetMagickFeatures.restype = c_char_p 

55 try: 

56 libmagick.GetMagickLicense.argtypes = [] 

57 libmagick.GetMagickLicense.restype = c_char_p 

58 except AttributeError: 

59 pass 

60 libmagick.GetMagickPackageName.argtypes = [] 

61 libmagick.GetMagickPackageName.restype = c_char_p 

62 libmagick.GetMagickQuantumDepth.argtypes = [POINTER(c_size_t)] 

63 libmagick.GetMagickQuantumDepth.restype = c_char_p 

64 libmagick.GetMagickQuantumRange.argtypes = [POINTER(c_size_t)] 

65 libmagick.GetMagickQuantumRange.restype = c_char_p 

66 libmagick.GetMagickReleaseDate.argtypes = [] 

67 libmagick.GetMagickReleaseDate.restype = c_char_p 

68 libmagick.GetMagickResource.argtypes = [c_int] 

69 libmagick.GetMagickResource.restype = c_size_t 

70 libmagick.GetMagickResourceLimit.argtypes = [c_int] 

71 libmagick.GetMagickResourceLimit.restype = c_size_t 

72 libmagick.GetMagickVersion.argtypes = [POINTER(c_size_t)] 

73 libmagick.GetMagickVersion.restype = c_char_p 

74 libmagick.GetNextImageInList.argtypes = [c_void_p] 

75 libmagick.GetNextImageInList.restype = c_void_p 

76 libmagick.MagickToMime.argtypes = [c_char_p] 

77 libmagick.MagickToMime.restype = c_magick_char_p 

78 try: 

79 libmagick.ParseChannelOption.argtypes = [c_char_p] 

80 libmagick.ParseChannelOption.restypes = c_ssize_t 

81 except AttributeError: 

82 libmagick.ParseChannelOption = None 

83 try: 

84 libmagick.ParseGeometry.argtypes = [c_char_p, c_void_p] 

85 libmagick.ParseGeometry.restype = c_int 

86 libmagick.ParseMetaGeometry.argtypes = [c_char_p, 

87 POINTER(c_ssize_t), 

88 POINTER(c_ssize_t), 

89 POINTER(c_size_t), 

90 POINTER(c_size_t)] 

91 libmagick.ParseMetaGeometry.restype = c_int 

92 except AttributeError: 

93 libmagick.ParseGeometry = None 

94 libmagick.ParseMetaGeometry = None 

95 libmagick.SetMagickResourceLimit.argtypes = [c_int, c_size_t] 

96 libmagick.SetMagickResourceLimit.restype = c_int 

97 

98 

99def load_with_version(libmagick, IM_VERSION): 

100 if IM_VERSION < 0x700: 

101 libmagick.AcquireKernelBuiltIn.argtypes = [c_int, c_void_p] 

102 libmagick.AcquireKernelBuiltIn.restype = c_void_p 

103 libmagick.AcquireKernelInfo.argtypes = [c_char_p] 

104 libmagick.AcquireKernelInfo.restype = c_void_p 

105 else: 

106 libmagick.AcquireKernelBuiltIn.argtypes = [c_int, c_void_p, 

107 c_void_p] 

108 libmagick.AcquireKernelBuiltIn.restype = c_void_p 

109 libmagick.AcquireKernelInfo.argtypes = [c_char_p, c_void_p] 

110 libmagick.AcquireKernelInfo.restype = c_void_p 

111 libmagick.DestroyKernelInfo.argtypes = [c_void_p] 

112 libmagick.DestroyKernelInfo.restype = c_void_p