Package javax.media.jai

Examples of javax.media.jai.PixelAccessor


/*     */
/*     */   protected void computeRect(Raster[] sources, WritableRaster dest, Rectangle destRect)
/*     */   {
/* 256 */     Raster source = sources[0];
/*     */
/* 258 */     PixelAccessor pa = new PixelAccessor(source.getSampleModel(), null);
/* 259 */     PackedImageData srcIm = pa.getPackedPixels(source, source.getBounds(), false, false);
/*     */
/* 262 */     pa = new PixelAccessor(dest.getSampleModel(), null);
/* 263 */     PackedImageData dstIm = pa.getPackedPixels(dest, destRect, true, false);
/*     */
/* 267 */     int[] srcUK = new int[this.kwPack * this.kh];
/*     */
/* 271 */     int dheight = destRect.height;
/* 272 */     int dwidth = destRect.width;
/*     */
/* 274 */     int sOffset = srcIm.offset;
/* 275 */     int dOffset = dstIm.offset;
/* 276 */     for (int j = 0; j < dheight; j++)
/*     */     {
/* 282 */       for (int m = 0; m < srcUK.length; m++) {
/* 283 */         srcUK[m] = 0;
/*     */       }
/*     */
/* 289 */       for (int i = 0; i < this.kw - 1; i++) {
/* 290 */         bitShiftMatrixLeft(srcUK, this.kh, this.kwPack);
/* 291 */         int lastCol = this.kwPack - 1;
/* 292 */         int bitLoc = srcIm.bitOffset + i;
/* 293 */         int byteLoc = bitLoc >> 3;
/* 294 */         bitLoc = 7 - (bitLoc & 0x7);
/* 295 */         int m = 0; int sOffsetB = sOffset;
/*     */
/* 297 */         for (; m < this.kh;
/* 297 */           sOffsetB += srcIm.lineStride)
/*     */         {
/* 299 */           int selement = srcIm.data[(sOffsetB + byteLoc)];
/* 300 */           int val = selement >> bitLoc & 0x1;
/* 301 */           srcUK[lastCol] |= val;
/* 302 */           lastCol += this.kwPack;
/*     */
/* 297 */           m++;
/*     */         }
/*     */
/*     */       }
/*     */
/* 308 */       for (int i = 0; i < dwidth; i++)
/*     */       {
/* 310 */         bitShiftMatrixLeft(srcUK, this.kh, this.kwPack);
/* 311 */         int lastCol = this.kwPack - 1;
/* 312 */         int bitLoc = srcIm.bitOffset + i + this.kw - 1;
/* 313 */         int byteLoc = bitLoc >> 3;
/* 314 */         bitLoc = 7 - (bitLoc & 0x7);
/* 315 */         int m = 0; int sOffsetB = sOffset;
/*     */
/* 317 */         for (; m < this.kh;
/* 317 */           sOffsetB += srcIm.lineStride)
/*     */         {
/* 319 */           int selement = srcIm.data[(sOffsetB + byteLoc)];
/* 320 */           int val = selement >> bitLoc & 0x1;
/* 321 */           srcUK[lastCol] |= val;
/* 322 */           lastCol += this.kwPack;
/*     */
/* 317 */           m++;
/*     */         }
/*     */
/* 326 */         int dBitLoc = dstIm.bitOffset + i;
/* 327 */         int dshift = 7 - (dBitLoc & 0x7);
/* 328 */         int dByteLoc = (dBitLoc >> 3) + dOffset;
/* 329 */         int delement = dstIm.data[dByteLoc];
/* 330 */         delement |= 1 << dshift;
/*     */
/* 332 */         for (int m = 0; m < srcUK.length; m++) {
/* 333 */           if ((srcUK[m] & this.kdataPack[m]) != this.kdataPack[m]) {
/* 334 */             delement &= (1 << dshift ^ 0xFFFFFFFF);
/* 335 */             break;
/*     */           }
/*     */         }
/* 338 */         dstIm.data[dByteLoc] = ((byte)delement);
/*     */       }
/* 340 */       sOffset += srcIm.lineStride;
/* 341 */       dOffset += dstIm.lineStride;
/*     */     }
/* 343 */     pa.setPackedPixels(dstIm);
/*     */   }
View Full Code Here


/*     */   {
/* 189 */     if (this.colorMap == null) {
/* 190 */       train();
/*     */     }
/* 192 */     if (!this.isInitialized) {
/* 193 */       this.srcPA = new PixelAccessor(getSourceImage(0));
/* 194 */       this.srcSampleType = (this.srcPA.sampleType == -1 ? 0 : this.srcPA.sampleType);
/*     */
/* 196 */       this.isInitialized = true;
/*     */     }
/*     */
/* 199 */     UnpackedImageData uid = this.srcPA.getPixels(sources[0], destRect, this.srcSampleType, false);
/*     */
/* 202 */     Rectangle rect = uid.rect;
/* 203 */     byte[][] data = uid.getByteData();
/* 204 */     int srcLineStride = uid.lineStride;
/* 205 */     int srcPixelStride = uid.pixelStride;
/* 206 */     byte[] rBand = data[0];
/* 207 */     byte[] gBand = data[1];
/* 208 */     byte[] bBand = data[2];
/*     */
/* 210 */     int lastLine = rect.height * srcLineStride + uid.bandOffsets[0];
/*     */
/* 212 */     if (this.destPA == null) {
/* 213 */       this.destPA = new PixelAccessor(this);
/*     */     }
/* 215 */     UnpackedImageData destUid = this.destPA.getPixels(dest, destRect, this.sampleModel.getDataType(), false);
/*     */
/* 219 */     int destLineOffset = destUid.bandOffsets[0];
/* 220 */     int destLineStride = destUid.lineStride;
View Full Code Here

/*     */
/*     */   protected void computeRect(Raster[] sources, WritableRaster dest, Rectangle destRect)
/*     */   {
/* 235 */     Raster source = sources[0];
/*     */
/* 237 */     PixelAccessor pa = new PixelAccessor(source.getSampleModel(), null);
/* 238 */     PackedImageData srcIm = pa.getPackedPixels(source, source.getBounds(), false, false);
/*     */
/* 241 */     pa = new PixelAccessor(dest.getSampleModel(), null);
/* 242 */     PackedImageData dstIm = pa.getPackedPixels(dest, destRect, true, false);
/*     */
/* 246 */     int[] srcUK = new int[this.kwPack * this.kh];
/*     */
/* 250 */     int dheight = destRect.height;
/* 251 */     int dwidth = destRect.width;
/*     */
/* 253 */     int sOffset = srcIm.offset;
/* 254 */     int dOffset = dstIm.offset;
/* 255 */     for (int j = 0; j < dheight; j++)
/*     */     {
/* 261 */       for (int m = 0; m < srcUK.length; m++) {
/* 262 */         srcUK[m] = 0;
/*     */       }
/*     */
/* 268 */       for (int i = 0; i < this.kw - 1; i++) {
/* 269 */         bitShiftMatrixLeft(srcUK, this.kh, this.kwPack);
/* 270 */         int lastCol = this.kwPack - 1;
/* 271 */         int bitLoc = srcIm.bitOffset + i;
/* 272 */         int byteLoc = bitLoc >> 3;
/* 273 */         bitLoc = 7 - (bitLoc & 0x7);
/* 274 */         int m = 0; int sOffsetB = sOffset;
/*     */
/* 276 */         for (; m < this.kh;
/* 276 */           sOffsetB += srcIm.lineStride)
/*     */         {
/* 278 */           int selement = srcIm.data[(sOffsetB + byteLoc)];
/* 279 */           int val = selement >> bitLoc & 0x1;
/* 280 */           srcUK[lastCol] |= val;
/* 281 */           lastCol += this.kwPack;
/*     */
/* 276 */           m++;
/*     */         }
/*     */
/*     */       }
/*     */
/* 287 */       for (int i = 0; i < dwidth; i++)
/*     */       {
/* 289 */         bitShiftMatrixLeft(srcUK, this.kh, this.kwPack);
/* 290 */         int lastCol = this.kwPack - 1;
/* 291 */         int bitLoc = srcIm.bitOffset + i + this.kw - 1;
/* 292 */         int byteLoc = bitLoc >> 3;
/* 293 */         bitLoc = 7 - (bitLoc & 0x7);
/* 294 */         int m = 0; int sOffsetB = sOffset;
/*     */
/* 296 */         for (; m < this.kh;
/* 296 */           sOffsetB += srcIm.lineStride)
/*     */         {
/* 298 */           int selement = srcIm.data[(sOffsetB + byteLoc)];
/* 299 */           int val = selement >> bitLoc & 0x1;
/* 300 */           srcUK[lastCol] |= val;
/* 301 */           lastCol += this.kwPack;
/*     */
/* 296 */           m++;
/*     */         }
/*     */
/* 305 */         for (int m = 0; m < srcUK.length; m++) {
/* 306 */           if ((srcUK[m] & this.kdataPack[m]) != 0) {
/* 307 */             int dBitLoc = dstIm.bitOffset + i;
/* 308 */             int dshift = 7 - (dBitLoc & 0x7);
/* 309 */             int dByteLoc = (dBitLoc >> 3) + dOffset;
/* 310 */             int delement = dstIm.data[dByteLoc];
/* 311 */             delement |= 1 << dshift;
/* 312 */             dstIm.data[dByteLoc] = ((byte)delement);
/* 313 */             break;
/*     */           }
/*     */         }
/*     */       }
/*     */
/* 318 */       sOffset += srcIm.lineStride;
/* 319 */       dOffset += dstIm.lineStride;
/*     */     }
/* 321 */     pa.setPackedPixels(dstIm);
/*     */   }
View Full Code Here

/*      */   public static void fillBackground(WritableRaster raster, Rectangle rect, double[] backgroundValues)
/*      */   {
/* 1045 */     rect = rect.intersection(raster.getBounds());
/* 1046 */     int numBands = raster.getSampleModel().getNumBands();
/* 1047 */     SampleModel sm = raster.getSampleModel();
/* 1048 */     PixelAccessor accessor = new PixelAccessor(sm, null);
/*      */
/* 1050 */     if (isBinary(sm))
/*      */     {
/* 1052 */       byte value = (byte)((int)backgroundValues[0] & 0x1);
/* 1053 */       if (value == 0)
/* 1054 */         return;
/* 1055 */       int rectX = rect.x;
/* 1056 */       int rectY = rect.y;
/* 1057 */       int rectWidth = rect.width;
/* 1058 */       int rectHeight = rect.height;
/*      */
/* 1060 */       int dx = rectX - raster.getSampleModelTranslateX();
/* 1061 */       int dy = rectY - raster.getSampleModelTranslateY();
/*      */
/* 1063 */       DataBuffer dataBuffer = raster.getDataBuffer();
/* 1064 */       MultiPixelPackedSampleModel mpp = (MultiPixelPackedSampleModel)sm;
/* 1065 */       int lineStride = mpp.getScanlineStride();
/* 1066 */       int eltOffset = dataBuffer.getOffset() + mpp.getOffset(dx, dy);
/* 1067 */       int bitOffset = mpp.getBitOffset(dx);
/*      */
/* 1069 */       switch (sm.getDataType())
/*      */       {
/*      */       case 0:
/* 1072 */         byte[] data = ((DataBufferByte)dataBuffer).getData();
/* 1073 */         int bits = bitOffset & 0x7;
/* 1074 */         int otherBits = bits == 0 ? 0 : 8 - bits;
/*      */
/* 1076 */         byte mask = (byte)(255 >> bits);
/* 1077 */         int lineLength = (rectWidth - otherBits) / 8;
/* 1078 */         int bits1 = rectWidth - otherBits & 0x7;
/* 1079 */         byte mask1 = (byte)(255 << 8 - bits1);
/*      */
/* 1081 */         for (int y = 0; y < rectHeight; y++) {
/* 1082 */           int start = eltOffset;
/* 1083 */           if (bits != 0)
/* 1084 */             data[(start++)] = mask;
/* 1085 */           int end = start + lineLength;
/* 1086 */           while (start < end)
/* 1087 */             data[(start++)] = -1;
/* 1088 */           if (bits1 != 0)
/* 1089 */             data[(start++)] = mask1;
/* 1090 */           eltOffset += lineStride;
/*      */         }
/* 1092 */         break;
/*      */       case 1:
/*      */       case 2:
/* 1097 */         short[] data = ((DataBufferShort)dataBuffer).getData();
/* 1098 */         int bits = bitOffset & 0xF;
/* 1099 */         int otherBits = bits == 0 ? 0 : 16 - bits;
/*      */
/* 1101 */         short mask = (short)(65535 >> bits);
/* 1102 */         int lineLength = (rectWidth - otherBits) / 16;
/* 1103 */         int bits1 = rectWidth - otherBits & 0xF;
/* 1104 */         short mask1 = (short)(65535 << 16 - bits1);
/*      */
/* 1106 */         for (int y = 0; y < rectHeight; y++) {
/* 1107 */           int start = eltOffset;
/* 1108 */           if (bits != 0)
/* 1109 */             data[(start++)] = mask;
/* 1110 */           int end = start + lineLength;
/* 1111 */           while (start < end)
/* 1112 */             data[(start++)] = -1;
/* 1113 */           if (bits1 != 0)
/* 1114 */             data[(start++)] = mask1;
/* 1115 */           eltOffset += lineStride;
/*      */         }
/* 1117 */         break;
/*      */       case 3:
/* 1121 */         int[] data = ((DataBufferInt)dataBuffer).getData();
/* 1122 */         int bits = bitOffset & 0x1F;
/* 1123 */         int otherBits = bits == 0 ? 0 : 32 - bits;
/*      */
/* 1125 */         short mask = (short)(-1 >> bits);
/* 1126 */         int lineLength = (rectWidth - otherBits) / 32;
/* 1127 */         int bits1 = rectWidth - otherBits & 0x1F;
/* 1128 */         short mask1 = (short)(-1 << 32 - bits1);
/*      */
/* 1130 */         for (int y = 0; y < rectHeight; y++) {
/* 1131 */           int start = eltOffset;
/* 1132 */           if (bits != 0)
/* 1133 */             data[(start++)] = mask;
/* 1134 */           int end = start + lineLength;
/* 1135 */           while (start < end)
/* 1136 */             data[(start++)] = -1;
/* 1137 */           if (bits1 != 0)
/* 1138 */             data[(start++)] = mask1;
/* 1139 */           eltOffset += lineStride;
/*      */         }
/* 1141 */         break;
/*      */       }
/*      */     }
/*      */     else
/*      */     {
/* 1146 */       int srcSampleType = accessor.sampleType == -1 ? 0 : accessor.sampleType;
/*      */
/* 1148 */       UnpackedImageData uid = accessor.getPixels(raster, rect, srcSampleType, false);
/*      */
/* 1150 */       rect = uid.rect;
/* 1151 */       int lineStride = uid.lineStride;
/* 1152 */       int pixelStride = uid.pixelStride;
/*      */
View Full Code Here

/* 219 */     int nSrcs = sources.length;
/* 220 */     int[] snbands = new int[nSrcs];
/* 221 */     PixelAccessor[] pas = new PixelAccessor[nSrcs];
/*     */
/* 223 */     for (int i = 0; i < nSrcs; i++) {
/* 224 */       pas[i] = new PixelAccessor(sources[i].getSampleModel(), this.colorModels[i]);
/*     */
/* 226 */       if ((this.colorModels[i] instanceof IndexColorModel))
/* 227 */         snbands[i] = this.colorModels[i].getNumComponents();
/*     */       else {
/* 229 */         snbands[i] = sources[i].getNumBands();
/*     */       }
/*     */     }
/*     */
/* 233 */     int dnbands = dest.getNumBands();
/* 234 */     int destType = dest.getTransferType();
/* 235 */     PixelAccessor d = new PixelAccessor(dest.getSampleModel(), null);
/*     */
/* 237 */     UnpackedImageData dimd = d.getPixels(dest, destRect, destType, true);
/*     */
/* 242 */     byte[][] dstdata = (byte[][])dimd.data;
/*     */
/* 244 */     int sindex = 0; for (int db = 0; sindex < nSrcs; sindex++)
/*     */     {
/* 246 */       UnpackedImageData simd = (this.colorModels[sindex] instanceof IndexColorModel) ? pas[sindex].getComponents(sources[sindex], destRect, sources[sindex].getSampleModel().getTransferType()) : pas[sindex].getPixels(sources[sindex], destRect, sources[sindex].getSampleModel().getTransferType(), false);
/*     */
/* 257 */       int srcPixelStride = simd.pixelStride;
/* 258 */       int srcLineStride = simd.lineStride;
/* 259 */       int dstPixelStride = dimd.pixelStride;
/* 260 */       int dstLineStride = dimd.lineStride;
/* 261 */       int dRectWidth = destRect.width;
/*     */
/* 263 */       for (int sb = 0; (sb < snbands[sindex]) &&
/* 264 */         (db < dnbands); db++)
/*     */       {
/* 269 */         byte[] dstdatabandb = dstdata[db];
/* 270 */         byte[][] srcdata = (byte[][])simd.data;
/* 271 */         byte[] srcdatabandsb = srcdata[sb];
/* 272 */         int srcstart = simd.bandOffsets[sb];
/* 273 */         int dststart = dimd.bandOffsets[db];
/*     */
/* 275 */         int y = 0;
/*     */
/* 277 */         for (; y < destRect.height;
/* 277 */           dststart += dstLineStride)
/*     */         {
/* 279 */           int i = 0; int srcpos = srcstart; int dstpos = dststart;
/*     */
/* 281 */           for (; i < dRectWidth;
/* 281 */             dstpos += dstPixelStride)
/*     */           {
/* 283 */             dstdatabandb[dstpos] = srcdatabandsb[srcpos];
/*     */
/* 281 */             i++; srcpos += srcPixelStride;
/*     */           }
/* 277 */           y++; srcstart += srcLineStride;
/*     */         }
/* 263 */         sb++;
/*     */       }
/*     */
/*     */     }
/*     */
/* 289 */     d.setPixels(dimd);
/*     */   }
View Full Code Here

/* 296 */     int nSrcs = sources.length;
/* 297 */     int[] snbands = new int[nSrcs];
/* 298 */     PixelAccessor[] pas = new PixelAccessor[nSrcs];
/*     */
/* 300 */     for (int i = 0; i < nSrcs; i++) {
/* 301 */       pas[i] = new PixelAccessor(sources[i].getSampleModel(), this.colorModels[i]);
/*     */
/* 303 */       if ((this.colorModels[i] instanceof IndexColorModel))
/* 304 */         snbands[i] = this.colorModels[i].getNumComponents();
/*     */       else {
/* 306 */         snbands[i] = sources[i].getNumBands();
/*     */       }
/*     */     }
/*     */
/* 310 */     int dnbands = dest.getNumBands();
/* 311 */     int destType = dest.getTransferType();
/* 312 */     PixelAccessor d = new PixelAccessor(dest.getSampleModel(), null);
/*     */
/* 314 */     UnpackedImageData dimd = d.getPixels(dest, destRect, destType, true);
/*     */
/* 319 */     short[][] dstdata = (short[][])dimd.data;
/*     */
/* 321 */     int sindex = 0; for (int db = 0; sindex < nSrcs; sindex++)
/*     */     {
/* 323 */       UnpackedImageData simd = (this.colorModels[sindex] instanceof IndexColorModel) ? pas[sindex].getComponents(sources[sindex], destRect, sources[sindex].getSampleModel().getTransferType()) : pas[sindex].getPixels(sources[sindex], destRect, sources[sindex].getSampleModel().getTransferType(), false);
/*     */
/* 333 */       int srcPixelStride = simd.pixelStride;
/* 334 */       int srcLineStride = simd.lineStride;
/* 335 */       int dstPixelStride = dimd.pixelStride;
/* 336 */       int dstLineStride = dimd.lineStride;
/* 337 */       int dRectWidth = destRect.width;
/*     */
/* 339 */       for (int sb = 0; sb < snbands[sindex]; db++) {
/* 340 */         if (db < dnbands) {
/* 341 */           short[][] srcdata = (short[][])simd.data;
/* 342 */           int srcstart = simd.bandOffsets[sb];
/* 343 */           int dststart = dimd.bandOffsets[db];
/* 344 */           int y = 0;
/*     */
/* 346 */           for (; y < destRect.height;
/* 346 */             dststart += dstLineStride)
/*     */           {
/* 348 */             int i = 0; int srcpos = srcstart; int dstpos = dststart;
/*     */
/* 350 */             for (; i < dRectWidth;
/* 350 */               dstpos += dstPixelStride)
/*     */             {
/* 352 */               dstdata[db][dstpos] = srcdata[sb][srcpos];
/*     */
/* 350 */               i++; srcpos += srcPixelStride;
/*     */             }
/* 346 */             y++; srcstart += srcLineStride;
/*     */           }
/*     */         }
/* 339 */         sb++;
/*     */       }
/*     */
/*     */     }
/*     */
/* 359 */     d.setPixels(dimd);
/*     */   }
View Full Code Here

/* 366 */     int nSrcs = sources.length;
/* 367 */     int[] snbands = new int[nSrcs];
/* 368 */     PixelAccessor[] pas = new PixelAccessor[nSrcs];
/*     */
/* 370 */     for (int i = 0; i < nSrcs; i++) {
/* 371 */       pas[i] = new PixelAccessor(sources[i].getSampleModel(), this.colorModels[i]);
/*     */
/* 373 */       if ((this.colorModels[i] instanceof IndexColorModel))
/* 374 */         snbands[i] = this.colorModels[i].getNumComponents();
/*     */       else {
/* 376 */         snbands[i] = sources[i].getNumBands();
/*     */       }
/*     */     }
/*     */
/* 380 */     int dnbands = dest.getNumBands();
/* 381 */     int destType = dest.getTransferType();
/* 382 */     PixelAccessor d = new PixelAccessor(dest.getSampleModel(), null);
/*     */
/* 384 */     UnpackedImageData dimd = d.getPixels(dest, destRect, destType, true);
/*     */
/* 389 */     int[][] dstdata = (int[][])dimd.data;
/*     */
/* 391 */     int sindex = 0; for (int db = 0; sindex < nSrcs; sindex++)
/*     */     {
/* 393 */       UnpackedImageData simd = (this.colorModels[sindex] instanceof IndexColorModel) ? pas[sindex].getComponents(sources[sindex], destRect, sources[sindex].getSampleModel().getTransferType()) : pas[sindex].getPixels(sources[sindex], destRect, sources[sindex].getSampleModel().getTransferType(), false);
/*     */
/* 403 */       int srcPixelStride = simd.pixelStride;
/* 404 */       int srcLineStride = simd.lineStride;
/* 405 */       int dstPixelStride = dimd.pixelStride;
/* 406 */       int dstLineStride = dimd.lineStride;
/* 407 */       int dRectWidth = destRect.width;
/*     */
/* 409 */       for (int sb = 0; sb < snbands[sindex]; db++) {
/* 410 */         if (db < dnbands) {
/* 411 */           int[][] srcdata = (int[][])simd.data;
/* 412 */           int srcstart = simd.bandOffsets[sb];
/* 413 */           int dststart = dimd.bandOffsets[db];
/* 414 */           int y = 0;
/*     */
/* 416 */           for (; y < destRect.height;
/* 416 */             dststart += dstLineStride)
/*     */           {
/* 418 */             int i = 0; int srcpos = srcstart; int dstpos = dststart;
/*     */
/* 420 */             for (; i < dRectWidth;
/* 420 */               dstpos += dstPixelStride)
/*     */             {
/* 422 */               dstdata[db][dstpos] = srcdata[sb][srcpos];
/*     */
/* 420 */               i++; srcpos += srcPixelStride;
/*     */             }
/* 416 */             y++; srcstart += srcLineStride;
/*     */           }
/*     */         }
/* 409 */         sb++;
/*     */       }
/*     */
/*     */     }
/*     */
/* 429 */     d.setPixels(dimd);
/*     */   }
View Full Code Here

/* 437 */     int nSrcs = sources.length;
/* 438 */     int[] snbands = new int[nSrcs];
/* 439 */     PixelAccessor[] pas = new PixelAccessor[nSrcs];
/*     */
/* 441 */     for (int i = 0; i < nSrcs; i++) {
/* 442 */       pas[i] = new PixelAccessor(sources[i].getSampleModel(), this.colorModels[i]);
/*     */
/* 444 */       if ((this.colorModels[i] instanceof IndexColorModel))
/* 445 */         snbands[i] = this.colorModels[i].getNumComponents();
/*     */       else {
/* 447 */         snbands[i] = sources[i].getNumBands();
/*     */       }
/*     */     }
/*     */
/* 451 */     int dnbands = dest.getNumBands();
/* 452 */     int destType = dest.getTransferType();
/* 453 */     PixelAccessor d = new PixelAccessor(dest.getSampleModel(), null);
/*     */
/* 455 */     UnpackedImageData dimd = d.getPixels(dest, destRect, destType, true);
/*     */
/* 460 */     float[][] dstdata = (float[][])dimd.data;
/*     */
/* 462 */     int sindex = 0; for (int db = 0; sindex < nSrcs; sindex++)
/*     */     {
/* 464 */       UnpackedImageData simd = (this.colorModels[sindex] instanceof IndexColorModel) ? pas[sindex].getComponents(sources[sindex], destRect, sources[sindex].getSampleModel().getTransferType()) : pas[sindex].getPixels(sources[sindex], destRect, sources[sindex].getSampleModel().getTransferType(), false);
/*     */
/* 474 */       int srcPixelStride = simd.pixelStride;
/* 475 */       int srcLineStride = simd.lineStride;
/* 476 */       int dstPixelStride = dimd.pixelStride;
/* 477 */       int dstLineStride = dimd.lineStride;
/* 478 */       int dRectWidth = destRect.width;
/*     */
/* 480 */       for (int sb = 0; sb < snbands[sindex]; db++) {
/* 481 */         if (db < dnbands) {
/* 482 */           float[][] srcdata = (float[][])simd.data;
/* 483 */           int srcstart = simd.bandOffsets[sb];
/* 484 */           int dststart = dimd.bandOffsets[db];
/* 485 */           int y = 0;
/*     */
/* 487 */           for (; y < destRect.height;
/* 487 */             dststart += dstLineStride)
/*     */           {
/* 489 */             int i = 0; int srcpos = srcstart; int dstpos = dststart;
/*     */
/* 491 */             for (; i < dRectWidth;
/* 491 */               dstpos += dstPixelStride)
/*     */             {
/* 493 */               dstdata[db][dstpos] = srcdata[sb][srcpos];
/*     */
/* 491 */               i++; srcpos += srcPixelStride;
/*     */             }
/* 487 */             y++; srcstart += srcLineStride;
/*     */           }
/*     */         }
/* 480 */         sb++;
/*     */       }
/*     */
/*     */     }
/*     */
/* 500 */     d.setPixels(dimd);
/*     */   }
View Full Code Here

/* 507 */     int nSrcs = sources.length;
/* 508 */     int[] snbands = new int[nSrcs];
/* 509 */     PixelAccessor[] pas = new PixelAccessor[nSrcs];
/*     */
/* 511 */     for (int i = 0; i < nSrcs; i++) {
/* 512 */       pas[i] = new PixelAccessor(sources[i].getSampleModel(), this.colorModels[i]);
/*     */
/* 514 */       if ((this.colorModels[i] instanceof IndexColorModel))
/* 515 */         snbands[i] = this.colorModels[i].getNumComponents();
/*     */       else {
/* 517 */         snbands[i] = sources[i].getNumBands();
/*     */       }
/*     */     }
/*     */
/* 521 */     int dnbands = dest.getNumBands();
/* 522 */     int destType = dest.getTransferType();
/* 523 */     PixelAccessor d = new PixelAccessor(dest.getSampleModel(), null);
/*     */
/* 525 */     UnpackedImageData dimd = d.getPixels(dest, destRect, destType, true);
/*     */
/* 530 */     double[][] dstdata = (double[][])dimd.data;
/*     */
/* 532 */     int sindex = 0; for (int db = 0; sindex < nSrcs; sindex++)
/*     */     {
/* 534 */       UnpackedImageData simd = (this.colorModels[sindex] instanceof IndexColorModel) ? pas[sindex].getComponents(sources[sindex], destRect, sources[sindex].getSampleModel().getTransferType()) : pas[sindex].getPixels(sources[sindex], destRect, sources[sindex].getSampleModel().getTransferType(), false);
/*     */
/* 544 */       int srcPixelStride = simd.pixelStride;
/* 545 */       int srcLineStride = simd.lineStride;
/* 546 */       int dstPixelStride = dimd.pixelStride;
/* 547 */       int dstLineStride = dimd.lineStride;
/* 548 */       int dRectWidth = destRect.width;
/*     */
/* 550 */       for (int sb = 0; sb < snbands[sindex]; db++) {
/* 551 */         if (db < dnbands) {
/* 552 */           double[][] srcdata = (double[][])simd.data;
/* 553 */           int srcstart = simd.bandOffsets[sb];
/* 554 */           int dststart = dimd.bandOffsets[db];
/* 555 */           int y = 0;
/*     */
/* 557 */           for (; y < destRect.height;
/* 557 */             dststart += dstLineStride)
/*     */           {
/* 559 */             int i = 0; int srcpos = srcstart; int dstpos = dststart;
/*     */
/* 561 */             for (; i < dRectWidth;
/* 561 */               dstpos += dstPixelStride)
/*     */             {
/* 563 */               dstdata[db][dstpos] = srcdata[sb][srcpos];
/*     */
/* 561 */               i++; srcpos += srcPixelStride;
/*     */             }
/* 557 */             y++; srcstart += srcLineStride;
/*     */           }
/*     */         }
/* 550 */         sb++;
/*     */       }
/*     */
/*     */     }
/*     */
/* 570 */     d.setPixels(dimd);
/*     */   }
View Full Code Here

/*     */   }
/*     */
/*     */   protected void accumulateStatistics(String name, Raster source, Object stats)
/*     */   {
/* 169 */     if (!this.isInitialized) {
/* 170 */       this.srcPA = new PixelAccessor(getSourceImage(0));
/* 171 */       this.srcSampleType = (this.srcPA.sampleType == -1 ? 0 : this.srcPA.sampleType);
/*     */
/* 173 */       this.isInitialized = true;
/*     */     }
/*     */
View Full Code Here

TOP

Related Classes of javax.media.jai.PixelAccessor

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.