1*b2055c35SXin Li# SWIG bindings 2*b2055c35SXin Li 3*b2055c35SXin Li## Building 4*b2055c35SXin Li 5*b2055c35SXin Li### JNI SWIG bindings 6*b2055c35SXin Li 7*b2055c35SXin Li```shell 8*b2055c35SXin Li $ gcc -shared -fPIC -fno-strict-aliasing -O2 \ 9*b2055c35SXin Li -I/path/to/your/jdk/includes \ 10*b2055c35SXin Li libwebp_java_wrap.c \ 11*b2055c35SXin Li -lwebp \ 12*b2055c35SXin Li -o libwebp_jni.so 13*b2055c35SXin Li``` 14*b2055c35SXin Li 15*b2055c35SXin LiExample usage: 16*b2055c35SXin Li 17*b2055c35SXin Li```java 18*b2055c35SXin Liimport com.google.webp.libwebp; 19*b2055c35SXin Li 20*b2055c35SXin Liimport java.lang.reflect.Method; 21*b2055c35SXin Li 22*b2055c35SXin Lipublic class libwebp_jni_example { 23*b2055c35SXin Li static { 24*b2055c35SXin Li System.loadLibrary("webp_jni"); 25*b2055c35SXin Li } 26*b2055c35SXin Li 27*b2055c35SXin Li /** 28*b2055c35SXin Li * usage: java -cp libwebp.jar:. libwebp_jni_example 29*b2055c35SXin Li */ 30*b2055c35SXin Li public static void main(String argv[]) { 31*b2055c35SXin Li final int version = libwebp.WebPGetDecoderVersion(); 32*b2055c35SXin Li System.out.println("libwebp version: " + Integer.toHexString(version)); 33*b2055c35SXin Li 34*b2055c35SXin Li System.out.println("libwebp methods:"); 35*b2055c35SXin Li final Method[] libwebpMethods = libwebp.class.getDeclaredMethods(); 36*b2055c35SXin Li for (int i = 0; i < libwebpMethods.length; i++) { 37*b2055c35SXin Li System.out.println(libwebpMethods[i]); 38*b2055c35SXin Li } 39*b2055c35SXin Li } 40*b2055c35SXin Li} 41*b2055c35SXin Li``` 42*b2055c35SXin Li 43*b2055c35SXin Li```shell 44*b2055c35SXin Li $ javac -cp libwebp.jar libwebp_jni_example.java 45*b2055c35SXin Li $ java -Djava.library.path=. -cp libwebp.jar:. libwebp_jni_example 46*b2055c35SXin Li``` 47*b2055c35SXin Li 48*b2055c35SXin Li### Python SWIG bindings: 49*b2055c35SXin Li 50*b2055c35SXin Li```shell 51*b2055c35SXin Li $ python setup.py build_ext 52*b2055c35SXin Li $ python setup.py install --prefix=pylocal 53*b2055c35SXin Li``` 54*b2055c35SXin Li 55*b2055c35SXin LiExample usage: 56*b2055c35SXin Li 57*b2055c35SXin Li```python 58*b2055c35SXin Liimport glob 59*b2055c35SXin Liimport sys 60*b2055c35SXin Lisys.path.append(glob.glob('pylocal/lib/python*/site-packages')[0]) 61*b2055c35SXin Li 62*b2055c35SXin Lifrom com.google.webp import libwebp 63*b2055c35SXin Liprint "libwebp decoder version: %x" % libwebp.WebPGetDecoderVersion() 64*b2055c35SXin Li 65*b2055c35SXin Liprint "libwebp attributes:" 66*b2055c35SXin Lifor attr in dir(libwebp): print attr 67*b2055c35SXin Li``` 68