Revision 8781 org.gvsig.raster/branches/org.gvsig.raster.2.4/org.gvsig.raster/org.gvsig.raster.lib/org.gvsig.raster.lib.buffer/org.gvsig.raster.lib.buffer.impl/src/main/java/org/gvsig/raster/lib/buffer/impl/DefaultBufferManager.java

View differences:

DefaultBufferManager.java
441 441
    }
442 442

  
443 443
    @Override
444
    public Buffer createRGBBuffer(BufferedImage img, IProjection projection, Envelope envelope) throws BufferException {
445

  
446
        int imageType = img.getType();
447
        if(imageType == BufferedImage.TYPE_3BYTE_BGR) {
448
            return createBuffer(img, projection, envelope);
449
        }
450

  
451
        int bands = 3;
452
        int[] bandDataTypes = new int[bands];
453
        NoData[] bandNoData = new NoData[bands];
454
        for (int i = 0; i < bandDataTypes.length; i++) {
455
            bandDataTypes[i] = BufferManager.TYPE_BYTE;
456
            bandNoData[i] = null;
457
        }
458

  
459
        Buffer buffer = null;
460
        buffer =
461
            createBuffer(img.getHeight(), img.getWidth(), bandDataTypes, bandNoData, projection, envelope);
462

  
463
        for (int r = 0; r < img.getHeight(); r++) {
464
            for (int c = 0; c < img.getWidth(); c++) {
465
                int color = img.getRGB(c, r);
466

  
467
                Color awtColor = new Color(color, true);
468
                buffer.getBandByte(0).set(r, c, (byte)awtColor.getRed()); // RED
469
                buffer.getBandByte(1).set(r, c, (byte)awtColor.getGreen()); // GREEN
470
                buffer.getBandByte(2).set(r, c, (byte)awtColor.getBlue()); // BLUE
471
            }
472
        }
473
        return buffer;
474
    }
475

  
476
    @Override
444 477
    public String getTypeName(int type) {
445 478
        DataTypesManager dtManager = ToolsLocator.getDataTypesManager();
446 479
        String[] names = {

Also available in: Unified diff