gdal_java.i

来自「支持各种栅格图像和矢量图像读取的库」· I 代码 · 共 95 行

I
95
字号
/****************************************************************************** * $Id: gdal_java.i 9183 2006-02-16 17:21:12Z collinsb $ * * Name:     gdal_java.i * Project:  GDAL SWIG Interface * Purpose:  Typemaps for Java bindings * Author:   Benjamin Collins, The MITRE Corporation * * * $Log$ * Revision 1.2  2006/02/16 17:21:12  collinsb * Updates to Java bindings to keep the code from halting execution if the native libraries cannot be found. * * Revision 1.1  2006/02/02 20:56:07  collinsb * Added Java specific typemap code * **/%pragma(java) jniclasscode=%{  private static boolean available = false;  static {    try {      System.loadLibrary("gdaljni");      available = true;    } catch (UnsatisfiedLinkError e) {      available = false;      System.err.println("Native library load failed.");      System.err.println(e);    }  }    public static boolean isAvailable() {    return available;  }%}%extend GDALRasterBandShadow {  CPLErr ReadRaster_Direct( int xoff, int yoff, int xsize, int ysize,                            int buf_xsize, int buf_ysize,                            GDALDataType buf_type,                            void *buf ){  return GDALRasterIO( self, GF_Read, xoff, yoff, xsize, ysize,                                 buf, buf_xsize, buf_ysize,                                 buf_type, 0, 0 );}  CPLErr WriteRaster_Direct( int xoff, int yoff, int xsize, int ysize,                            int buf_xsize, int buf_ysize,                            GDALDataType buf_type,                            void *buf ){  return GDALRasterIO( self, GF_Write, xoff, yoff, xsize, ysize,                                 buf, buf_xsize, buf_ysize,                                 buf_type, 0, 0 );}} /* extend */%typemap(javaimports) GDALColorTable %{/* imports for getIndexColorModel */import java.awt.image.IndexColorModel;import java.awt.Color;%}%typemap(javacode) GDALColorTable %{/* convienance method */  public IndexColorModel getIndexColorModel(int bits) {    int size = GetCount();    byte[] reds = new byte[size];    byte[] greens = new byte[size];    byte[] blues = new byte[size];    byte[] alphas = new byte[size];    Color entry = null;    for(int i = 0; i < size; i++) {      entry = GetColorEntry(i);      reds[i] = (byte)entry.getRed();      greens[i] = (byte)entry.getGreen();      blues[i] = (byte)entry.getBlue();      byte alpha = (byte)entry.getAlpha();      alphas[i] = (alpha != -1) ? alpha : 0;    }    return new IndexColorModel(bits, size, reds, greens, blues, alphas);  }%}%include typemaps_java.i

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?