2014-02-03 3 views

ответ

1

Доступ к неподдерживаемым API-интерфейсам довольно прост с wand.api, но вам нужно будет открыть файлы документов/заголовков ImageMagick для справки.

from wand.api import library 
import ctypes 

# Re-create NoiseType enum 
NOISE_TYPES = ('undefined', 'uniform', 'gaussian', 'multiplicative_gaussian', 
       'impulse', 'laplacian', 'poisson', 'random') 
# Map API i/o 
library.MagickAddNoiseImage.argtypes = [ctypes.c_void_p, 
             ctypes.c_uint] 
library.MagickAddNoiseImage.restype = ctypes.c_int 

# Extend wand's Image class with your new API 
from wand.image import Image 
class MySupportedImage(Image): 
    def add_noise(self, noise_type): 
    """My MagickAddNoiseImage""" 
    if noise_type not in NOISE_TYPES: 
     self.raise_exception() 
    return library.MagickAddNoiseImage.argtypes(self.resource, 
               NOISE_TYPES.index(noise_type)) 

Если ваше решение работает, подумайте о представлении вашего решения back to the community (после того, как вы создали тест твердого блока.)

Смежные вопросы