ByteArrayOutputStream stream = new ByteArrayOutputStream(); bitmap.compress(Bitmap.CompressFormat.PNG, 100, stream); byte[] byteArray = stream.toByteArray();看不懂
时间: 2024-02-19 07:00:26 浏览: 138
这段代码的作用是将一个Bitmap对象压缩成PNG格式的字节数组。具体来说,代码中创建了一个ByteArrayOutputStream对象stream,此对象可以用来将数据写入到字节数组中。然后,通过调用Bitmap对象的compress()方法,将Bitmap对象压缩成PNG格式的数据,并将数据写入到stream对象中。最后,通过调用stream对象的toByteArray()方法,将stream对象中的数据转换成一个字节数组byteArray,以便进行后续的操作。其中,compress()方法的第一个参数指定压缩格式,第二个参数指定压缩质量(0-100之间),这里设置为100表示不进行压缩。
相关问题
private void initView(){ permission(); ivAdd.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { openCarema(); } }); int oid = getIntent().getIntExtra("oid", 1); imgFile = new File(path); btn_add.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { String name = et_name.getText().toString(); String suit = et_zhengzhuang.getText().toString(); String effect = et_effect.getText().toString(); String notice = et_notice.getText().toString(); String use_info = et_num.getText().toString(); //把图片先转化成bitmap格式 BitmapDrawable drawable = (BitmapDrawable) ivAdd.getDrawable(); Bitmap bitmap = drawable.getBitmap(); //二进制数组输出流 ByteArrayOutputStream byStream = new ByteArrayOutputStream(); //将图片压缩成质量为100的PNG格式图片 bitmap.compress(Bitmap.CompressFormat.JPEG, 50, byStream); //把输出流转换为二进制数组 byte[] byteArray = byStream.toByteArray(); String base64 = Base64.encodeToString(byteArray, Base64.URL_SAFE); HashMap<String, Object> map = new HashMap<>(); // map.put("img",byteArray); map.put("img",base64); map.put("name",name); map.put("suit",suit); map.put("oid",oid); map.put("effect",effect); map.put("notice",notice); map.put("useInfo",use_info); RequestBody requestBody = getRequestBody(map); add(requestBody); } }); }
这是一个 Android 中的 initView() 方法,其中包含了一些 UI 控件的初始化和点击事件的处理。这个方法中包含了一个拍照功能的调用 openCarema(),以及一个将图片转化成 base64 格式的操作。最后,这个方法使用 Retrofit 发送一个 HTTP POST 请求,将上传的图片和其他信息提交给服务器。
android byte转bitmap
可以使用以下代码将 byte 数组转换为 Bitmap:
```java
public Bitmap byteArrayToBitmap(byte[] byteArray) {
return BitmapFactory.decodeByteArray(byteArray, 0, byteArray.length);
}
```
其中,`byteArray` 为要转换的 byte 数组。可以通过以下代码将 Bitmap 转换为 byte 数组:
```java
public byte[] bitmapToByteArray(Bitmap bitmap) {
ByteArrayOutputStream stream = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.PNG, 100, stream);
return stream.toByteArray();
}
```
其中,`bitmap` 为要转换的 Bitmap 对象。这里将 Bitmap 转换为 PNG 格式的 byte 数组,也可以改为 JPEG 格式等其他格式。
阅读全文