org.apache.poi.ss.usermodel.Workbook#PICTURE_TYPE_DIB源码实例Demo

下面列出了org.apache.poi.ss.usermodel.Workbook#PICTURE_TYPE_DIB 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

源代码1 项目: lams   文件: HSSFPictureData.java
/**
 * @return the POI internal image type, -1 if not unknown image type
 *
 * @see Workbook#PICTURE_TYPE_DIB
 * @see Workbook#PICTURE_TYPE_EMF
 * @see Workbook#PICTURE_TYPE_JPEG
 * @see Workbook#PICTURE_TYPE_PICT
 * @see Workbook#PICTURE_TYPE_PNG
 * @see Workbook#PICTURE_TYPE_WMF
 */
public int getPictureType() {
    switch (blip.getRecordId()) {
        case EscherMetafileBlip.RECORD_ID_WMF:
            return Workbook.PICTURE_TYPE_WMF;
        case EscherMetafileBlip.RECORD_ID_EMF:
            return Workbook.PICTURE_TYPE_EMF;
        case EscherMetafileBlip.RECORD_ID_PICT:
            return Workbook.PICTURE_TYPE_PICT;
        case EscherBitmapBlip.RECORD_ID_PNG:
            return Workbook.PICTURE_TYPE_PNG;
        case EscherBitmapBlip.RECORD_ID_JPEG:
            return Workbook.PICTURE_TYPE_JPEG;
        case EscherBitmapBlip.RECORD_ID_DIB:
            return Workbook.PICTURE_TYPE_DIB;
        default:
            return -1;
    }        
}
 
源代码2 项目: pentaho-reporting   文件: ExcelImageHandler.java
private int getImageFormat( final ResourceKey key ) {
  final URL url = resourceManager.toURL( key );
  if ( url == null ) {
    return -1;
  }

  final String file = url.getFile();
  if ( StringUtils.endsWithIgnoreCase( file, ".png" ) ) { // NON-NLS
    return Workbook.PICTURE_TYPE_PNG;
  }
  if ( StringUtils.endsWithIgnoreCase( file, ".jpg" ) || // NON-NLS
      StringUtils.endsWithIgnoreCase( file, ".jpeg" ) ) { // NON-NLS
    return Workbook.PICTURE_TYPE_JPEG;
  }
  if ( StringUtils.endsWithIgnoreCase( file, ".bmp" ) || // NON-NLS
      StringUtils.endsWithIgnoreCase( file, ".ico" ) ) { // NON-NLS
    return Workbook.PICTURE_TYPE_DIB;
  }
  return -1;
}
 
源代码3 项目: birt   文件: StyleManagerUtils.java
/**
 * <p>
 * Convert a MIME string into a Workbook.PICTURE* constant.
 * </p><p>
 * In some cases BIRT fails to submit a MIME string, in which case this method falls back to basic data signatures for JPEG and PNG images.
 * <p>
 * @param mimeType
 * The MIME type.
 * @param data
 * The image data to consider if no recognisable MIME type is provided.
 * @return
 * A Workbook.PICTURE* constant.
 */
public int poiImageTypeFromMimeType( String mimeType, byte[] data ) {
	if( "image/jpeg".equals(mimeType) ) {
		return Workbook.PICTURE_TYPE_JPEG;
	} else if( "image/png".equals(mimeType) ) {
		return Workbook.PICTURE_TYPE_PNG;
	} else if ( "image/bmp".equals( mimeType ) ) {
		return Workbook.PICTURE_TYPE_DIB;
	} else {
		if( null != data ) {
			log.debug( "Data bytes: "
					+ " " + Integer.toHexString( data[0] ).toUpperCase()  
					+ " " + Integer.toHexString( data[1] ).toUpperCase()  
					+ " " + Integer.toHexString( data[2] ).toUpperCase()
					+ " " + Integer.toHexString( data[3] ).toUpperCase()
					);
			if( ( data.length > 2 )
					&& ( data[0] == (byte)0xFF)
					&& ( data[1] == (byte)0xD8) 
					&& ( data[2] == (byte)0xFF)
					) {
				return Workbook.PICTURE_TYPE_JPEG;
			}
			if( ( data.length > 4 )
					&& ( data[0] == (byte)0x89)
					&& ( data[1] == (byte)'P') 
					&& ( data[2] == (byte)'N') 
					&& ( data[3] == (byte)'G') 
					) {
				return Workbook.PICTURE_TYPE_PNG;
			}
		} 
		return 0;
	}
}
 
源代码4 项目: lams   文件: ImageUtils.java
/**
 * Return the dimension of this image
 *
 * @param is the stream containing the image data
 * @param type type of the picture: {@link org.apache.poi.ss.usermodel.Workbook#PICTURE_TYPE_JPEG},
 * {@link org.apache.poi.ss.usermodel.Workbook#PICTURE_TYPE_PNG} or {@link org.apache.poi.ss.usermodel.Workbook#PICTURE_TYPE_DIB}
 *
 * @return image dimension in pixels
 */
public static Dimension getImageDimension(InputStream is, int type){
    Dimension size = new Dimension();

    switch (type){
        //we can calculate the preferred size only for JPEG, PNG and BMP
        //other formats like WMF, EMF and PICT are not supported in Java
        case Workbook.PICTURE_TYPE_JPEG:
        case Workbook.PICTURE_TYPE_PNG:
        case Workbook.PICTURE_TYPE_DIB:
            try {
                //read the image using javax.imageio.*
                ImageInputStream iis = ImageIO.createImageInputStream( is );
                try {
                    Iterator<ImageReader> i = ImageIO.getImageReaders( iis );
                    ImageReader r = i.next();
                    try {
                        r.setInput( iis );
                        BufferedImage img = r.read(0);
    
                        int[] dpi = getResolution(r);
    
                        //if DPI is zero then assume standard 96 DPI
                        //since cannot divide by zero
                        if (dpi[0] == 0) dpi[0] = PIXEL_DPI;
                        if (dpi[1] == 0) dpi[1] = PIXEL_DPI;
    
                        size.width = img.getWidth()*PIXEL_DPI/dpi[0];
                        size.height = img.getHeight()*PIXEL_DPI/dpi[1];
                    } finally {
                        r.dispose();
                    }
                } finally {
                    iis.close();
                }

            } catch (IOException e) {
                //silently return if ImageIO failed to read the image
                logger.log(POILogger.WARN, e);
            }

            break;
        default:
            logger.log(POILogger.WARN, "Only JPEG, PNG and DIB pictures can be automatically sized");
    }
    return size;
}
 
源代码5 项目: myexcel   文件: AbstractExcelFactory.java
private void setImage(Td td, Sheet sheet) {
    if (td.getFile() == null) {
        return;
    }
    try {
        if (createHelper == null) {
            createHelper = workbook.getCreationHelper();
        }
        byte[] bytes = Files.readAllBytes(td.getFile().toPath());
        String fileName = td.getFile().getName();
        int format;
        String suffix = fileName.substring(fileName.lastIndexOf(".") + 1).toLowerCase();
        switch (suffix) {
            case "jpg":
            case "jpeg":
                format = Workbook.PICTURE_TYPE_JPEG;
                break;
            case "png":
                format = Workbook.PICTURE_TYPE_PNG;
                break;
            case "dib":
                format = Workbook.PICTURE_TYPE_DIB;
                break;
            case "emf":
                format = Workbook.PICTURE_TYPE_EMF;
                break;
            case "pict":
                format = Workbook.PICTURE_TYPE_PICT;
                break;
            case "wmf":
                format = Workbook.PICTURE_TYPE_WMF;
                break;
            default:
                throw new IllegalArgumentException("Invalid image type");
        }
        int pictureIdx = workbook.addPicture(bytes, format);
        Drawing drawing = sheet.createDrawingPatriarch();
        ClientAnchor anchor = createHelper.createClientAnchor();
        anchor.setCol1(td.getCol());
        anchor.setRow1(td.getRow());
        Picture pict = drawing.createPicture(anchor, pictureIdx);
        pict.resize(1, 1);
    } catch (IOException e) {
        throw new RuntimeException(e);
    }
}