code: public static GifImage create(byte[] source) {
      ensure();
      Preconditions.checkNotNull(source);
  
      ByteBuffer byteBuffer = ByteBuffer.allocateDirect(source.length);
      byteBuffer.put(source);
      byteBuffer.rewind();
  
      return nativeCreateFromDirectByteBuffer(byteBuffer);
    }
docs: Creates a {@link GifImage} from the specified encoded data. This will throw if it fails
  to create. This is meant to be called on a worker thread.
  
  @param source the data to the image (a copy will be made)