The list of methods to do ByteBuffer Resize are organized into topic(s).
ByteBuffer
increaseBufferCapatity(ByteBuffer byteBuffer) increase Buffer Capatity
if (byteBuffer == null) {
throw new IllegalArgumentException("buffer is null");
int capacity = byteBuffer.capacity() + DEFAULT_INCREASE_BUFF_SIZE;
if (capacity < 0) {
throw new IllegalArgumentException("capacity can't be negative");
ByteBuffer result = byteBuffer.isDirect() ? ByteBuffer.allocateDirect(capacity)
...
ByteBuffer
increaseByteBuffer(ByteBuffer byteBuffer, int increase) increase ByteBuffer
int capacity = byteBuffer.limit() + increase;
ByteBuffer result = (byteBuffer.isDirect() ? ByteBuffer.allocateDirect(capacity)
: ByteBuffer.allocate(capacity));
result.order(byteBuffer.order());
byteBuffer.flip();
result.put(byteBuffer);
return result;
BufferedImage
performResize(BufferedImage source, int newWidth, int newHeight) Resizes an image using nearest filtering.
BufferedImage out = new BufferedImage(newWidth, newHeight, BufferedImage.TYPE_INT_ARGB);
Graphics2D g2d = out.createGraphics();
g2d.setComposite(AlphaComposite.Src);
g2d.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_NEAREST_NEIGHBOR);
g2d.setRenderingHint(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY);
g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_OFF);
g2d.drawImage(source, 0, 0, newWidth, newHeight, null);
g2d.dispose();
...
ByteBuffer
resize(ByteBuffer buffer) Allocate a larger buffer that contains the data of an existing buffer.
int capacity = buffer.capacity();
if (capacity > 2048)
capacity += 1024;
else
capacity *= 2;
ByteBuffer newBuffer = ByteBuffer.allocate(capacity);
buffer.flip();
newBuffer.put(buffer);
...
ByteBuffer
resize(ByteBuffer oldBuffer, int newSize) Resize the buffer specific size, cut off the tail
ByteBuffer newBuffer = ByteBuffer.allocate(newSize);
newSize = newSize - 1;
int oldSize = oldBuffer.limit() - 1;
int oldIndex = oldSize;
int to = newSize > oldSize ? newSize - oldSize : 0;
for (int newIndex = newSize; newIndex >= to; newIndex--) {
newBuffer.put(newIndex, oldBuffer.get(oldIndex));
oldIndex--;
...
ByteBuffer
resizeBuffer(final ByteBuffer in) A helper method to resize byte buffer upon read.
if (in.remaining() < READ_BLOCK) {
final ByteBuffer result = ByteBuffer.allocate(in.capacity() * 2);
in.flip();
result.put(in);
return result;
return in;