void write8BitImage(OutputStream out, byte[] pixels) throws IOException { int bytesWritten = 0; int size = fi.width*fi.height; int count = 8192; while (bytesWritten<size) { if ((bytesWritten + count)>size) count = size - bytesWritten; //System.out.println(bytesWritten + " " + count + " " + size); out.write(pixels, bytesWritten, count); bytesWritten += count; showProgress((double)bytesWritten/size); } }
void write8BitImage(OutputStream out, byte[] pixels) throws IOException { int bytesWritten = 0; int size = fi.width*fi.height; int count = 8192; while (bytesWritten<size) { if ((bytesWritten + count)>size) count = size - bytesWritten; //System.out.println(bytesWritten + " " + count + " " + size); out.write(pixels, bytesWritten, count); bytesWritten += count; showProgress((double)bytesWritten/size); } }
void writeRGBImage(OutputStream out, int[] pixels) throws IOException { long bytesWritten = 0L; long size = 3L*fi.width*fi.height; int count = fi.width*24; byte[] buffer = new byte[count]; while (bytesWritten<size) { if ((bytesWritten+count)>size) count = (int)(size-bytesWritten); int j = (int)(bytesWritten/3L); for (int i=0; i<count; i+=3) { buffer[i] = (byte)(pixels[j]>>16); //red buffer[i+1] = (byte)(pixels[j]>>8); //green buffer[i+2] = (byte)pixels[j]; //blue j++; } out.write(buffer, 0, count); bytesWritten += count; showProgress((double)bytesWritten/size); } }
void writeRGBImage(OutputStream out, int[] pixels) throws IOException { long bytesWritten = 0L; long size = 3L*fi.width*fi.height; int count = fi.width*24; byte[] buffer = new byte[count]; while (bytesWritten<size) { if ((bytesWritten+count)>size) count = (int)(size-bytesWritten); int j = (int)(bytesWritten/3L); for (int i=0; i<count; i+=3) { buffer[i] = (byte)(pixels[j]>>16); //red buffer[i+1] = (byte)(pixels[j]>>8); //green buffer[i+2] = (byte)pixels[j]; //blue j++; } out.write(buffer, 0, count); bytesWritten += count; showProgress((double)bytesWritten/size); } }
void write16BitImage(OutputStream out, short[] pixels) throws IOException { long bytesWritten = 0L; long size = 2L*fi.width*fi.height; int count = 8192; byte[] buffer = new byte[count]; while (bytesWritten<size) { if ((bytesWritten + count)>size) count = (int)(size-bytesWritten); int j = (int)(bytesWritten/2L); int value; if (fi.intelByteOrder) for (int i=0; i < count; i+=2) { value = pixels[j]; buffer[i] = (byte)value; buffer[i+1] = (byte)(value>>>8); j++; } else for (int i=0; i < count; i+=2) { value = pixels[j]; buffer[i] = (byte)(value>>>8); buffer[i+1] = (byte)value; j++; } out.write(buffer, 0, count); bytesWritten += count; showProgress((double)bytesWritten/size); } }
void write16BitImage(OutputStream out, short[] pixels) throws IOException { long bytesWritten = 0L; long size = 2L*fi.width*fi.height; int count = 8192; byte[] buffer = new byte[count]; while (bytesWritten<size) { if ((bytesWritten + count)>size) count = (int)(size-bytesWritten); int j = (int)(bytesWritten/2L); int value; if (fi.intelByteOrder) for (int i=0; i < count; i+=2) { value = pixels[j]; buffer[i] = (byte)value; buffer[i+1] = (byte)(value>>>8); j++; } else for (int i=0; i < count; i+=2) { value = pixels[j]; buffer[i] = (byte)(value>>>8); buffer[i+1] = (byte)value; j++; } out.write(buffer, 0, count); bytesWritten += count; showProgress((double)bytesWritten/size); } }
showProgress((double)bytesWritten/size);
showProgress((double)bytesWritten/size);