标签: bytebuffer

将Java位图转换为字节数组

  Bitmap bmp   = intent.getExtras().get("data");
  int size     = bmp.getRowBytes() * bmp.getHeight();
  ByteBuffer b = ByteBuffer.allocate(size);

  bmp.copyPixelsToBuffer(b);

  byte[] bytes = new byte[size];

  try {
     b.get(bytes, 0, bytes.length);
  } catch (BufferUnderflowException e) {
     // always happens
  }
  // do something with byte[]
Run Code Online (Sandbox Code Playgroud)

当我在调用copyPixelsToBuffer字节后查看缓冲区全部为0 ...从摄像机返回的位图是不可变的......但这应该无关紧要,因为它正在进行复制.

这段代码有什么问题?

java serialization android bytebuffer bitmap

279
推荐指数
6
解决办法
29万
查看次数

在Java中使用ByteBuffer有什么用?

ByteBufferJava 中的示例应用程序是什么?请列出使用此方法的任何示例方案.谢谢!

java buffer bytebuffer

184
推荐指数
5
解决办法
19万
查看次数

ByteBuffer.allocate()与ByteBuffer.allocateDirect()

allocate()或者allocateDirect(),这是一个问题.

多年以来我一直坚持认为,因为DirectByteBuffers是OS级别的直接内存映射,所以get/put调用的执行速度比HeapByteBuffers 快.到目前为止,我从未真正有兴趣了解有关情况的具体细节.我想知道两种类型的ByteBuffer哪种更快,哪种条件更快.

java performance nio bytebuffer

135
推荐指数
4
解决办法
7万
查看次数

字节数组到图像转换

我想将字节数组转换为图像.

这是我获取字节数组的数据库代码:

public void Get_Finger_print()
{
    try
    {
        using (SqlConnection thisConnection = new SqlConnection(@"Data Source=" + System.Environment.MachineName + "\\SQLEXPRESS;Initial Catalog=Image_Scanning;Integrated Security=SSPI "))
        {
            thisConnection.Open();
            string query = "select pic from Image_tbl";// where Name='" + name + "'";
            SqlCommand cmd = new SqlCommand(query, thisConnection);
            byte[] image =(byte[]) cmd.ExecuteScalar();
            Image newImage = byteArrayToImage(image);
            Picture.Image = newImage;
            //return image;
        }
    }
    catch (Exception) { }
    //return null;
}
Run Code Online (Sandbox Code Playgroud)

我的转换代码:

public Image byteArrayToImage(byte[] byteArrayIn)
{
    try
    {
        MemoryStream ms = new MemoryStream(byteArrayIn,0,byteArrayIn.Length);
        ms.Write(byteArrayIn, 0, …
Run Code Online (Sandbox Code Playgroud)

c# arrays byte bytebuffer

90
推荐指数
8
解决办法
27万
查看次数

从java中的ByteBuffer获取字节数组

这是从ByteBuffer获取字节的推荐方法

ByteBuffer bb =..

byte[] b = new byte[bb.remaining()]
bb.get(b, 0, b.length);
Run Code Online (Sandbox Code Playgroud)

java arrays nio bytebuffer bytearray

84
推荐指数
4
解决办法
12万
查看次数

ByteBuffer的翻转方法的目的是什么?(为什么称它为"翻转"?)

为什么ByteBuffer的flip()方法称为"翻转"?什么是"翻转"在这里?根据apidoc,连续两次翻转将不会恢复原始状态,并且多次翻转可能趋于limit()变为零.

我能以某种方式"解开"重用字节超出限制吗?

我可以将尾部连接到其他一些数据吗?

java bytebuffer flip

84
推荐指数
2
解决办法
5万
查看次数

Java:将字符串转换为ByteBuffer和来自ByteBuffer的字符串以及相关问题

我使用Java NIO进行套接字连接,我的协议是基于文本的,所以我需要能够在将字符串转换为SocketChannel之前将其转换为ByteBuffers,并将传入的ByteBuffers转换回字符串.目前,我正在使用此代码:

public static Charset charset = Charset.forName("UTF-8");
public static CharsetEncoder encoder = charset.newEncoder();
public static CharsetDecoder decoder = charset.newDecoder();

public static ByteBuffer str_to_bb(String msg){
  try{
    return encoder.encode(CharBuffer.wrap(msg));
  }catch(Exception e){e.printStackTrace();}
  return null;
}

public static String bb_to_str(ByteBuffer buffer){
  String data = "";
  try{
    int old_position = buffer.position();
    data = decoder.decode(buffer).toString();
    // reset buffer's position to its original so it is not altered:
    buffer.position(old_position);  
  }catch (Exception e){
    e.printStackTrace();
    return "";
  }
  return data;
}
Run Code Online (Sandbox Code Playgroud)

这在大多数情况下都有效,但我怀疑这是否是执行此转换的每个方向的首选(或最简单)方法,或者是否有其他方法可以尝试.偶尔,和看似随意,调用encode()decode()将抛出一个 java.lang.IllegalStateException: Current …

java string nio bytebuffer character-encoding

79
推荐指数
3
解决办法
13万
查看次数

C/C++为什么要对二进制数据使用unsigned char?

是否真的有必要unsigned char像在一些处理字符编码或二进制缓冲区的库中一样使用二进制数据?要理解我的问题,请看下面的代码 -

char c[5], d[5];
c[0] = 0xF0;
c[1] = 0xA4;
c[2] = 0xAD;
c[3] = 0xA2;
c[4] = '\0';

printf("%s\n", c);
memcpy(d, c, 5);
printf("%s\n", d);
Run Code Online (Sandbox Code Playgroud)

两者printf's输出 correctly, where f0 a4 ad a2Unicode代码点的编码U+24B62 ()在十六进制中.

甚至memcpy还正确地复制了char所持有的位.

什么推理可能主张使用unsigned char而不是plain char

在其他相关问题unsigned char中突出显示,因为它是唯一的(字节/最小)数据类型,保证C规范没有填充.但正如上面的例子所示,输出似乎不受任何填充的影响.

我使用VC++ Express 2010和MinGW来编译上面的内容.虽然VC给出了警告

warning C4309: '=' : truncation of constant value

输出似乎没有反映出来.

PS这可以标记为可能重复的字节缓冲区应该是有符号的还是无符号的char缓冲区?但我的意图是不同的.我在问为什么一些似乎工作正常的东西char应该输入unsigned char

更新:引用N3337,

Section …

c c++ bytebuffer character-encoding rawbytestring

51
推荐指数
4
解决办法
2万
查看次数

用InputStream包装ByteBuffer

我有一个方法,它接受一个I​​nputStream并从中读取数据.我想将此方法与ByteBuffer一起使用.有没有办法包装ByteBuffer所以它可以作为流访问?

java nio bytebuffer inputstream

43
推荐指数
3
解决办法
5万
查看次数

成长ByteBuffer

有没有人见过java.nio.ByteBuffer的实现,如果putX()调用超出容量,它将动态增长?

我想这样做的原因有两个:

  1. 我不知道我需要多少空间.
  2. 每次空间不足时,我宁愿不再使用新的ByteBuffer.allocate(),而是使用批量put().

java bytebuffer

40
推荐指数
5
解决办法
4万
查看次数