xref: /aosp_15_r20/external/webp/swig/README.md (revision b2055c353e87c8814eb2b6b1b11112a1562253bd)
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