Questions tagged «bitmap»

用于将图片编码为一组位的数据结构,其中每个图像像素都映射到一个位或一组位。也用于编码其他复杂数据,其中每个基本信息以类似的方式映射到位。对于平台特定的位图API,建议使用更特定的标签(例如android-bitmap或nsbitmapimagerep)。

30
将图像加载到位图对象时出现内存不足问题
我有一个列表视图,每行都有几个图像按钮。当您单击列表行时,它将启动一个新活动。由于相机布局存在问题,我不得不构建自己的标签。为结果而启动的活动是地图。如果单击我的按钮以启动图像预览(将图像从SD卡中加载),应用程序将从活动返回listview活动到结果处理程序,以重新启动我的新活动,无非就是图像小部件。 列表视图上的图像预览是使用光标和进行的ListAdapter。这非常简单,但是我不确定如何放置调整大小后的图像(即,较小的位大小而不是像素,而不是像像素src按钮那样动态显示。因此,我只是调整了从电话摄像头放出的图像的大小。 问题是,当它尝试返回并重新启动第二个活动时,出现内存不足错误。 有没有一种方法可以轻松地逐行构建列表适配器,从而可以即时调整大小(逐位)? 这将是更可取的,因为我也需要对每行中的小部件/元素的属性进行一些更改,因为由于焦点问题而无法使用触摸屏选择一行。(我可以用滚球。) 我知道我可以进行带外调整大小并保存图像,但这并不是我真正想做的,但是一些示例代码会很不错。 一旦禁用列表视图中的图像,它就会再次正常工作。 仅供参考:这就是我的做法: String[] from = new String[] { DBHelper.KEY_BUSINESSNAME,DBHelper.KEY_ADDRESS,DBHelper.KEY_CITY,DBHelper.KEY_GPSLONG,DBHelper.KEY_GPSLAT,DBHelper.KEY_IMAGEFILENAME + ""}; int[] to = new int[] {R.id.businessname,R.id.address,R.id.city,R.id.gpslong,R.id.gpslat,R.id.imagefilename }; notes = new SimpleCursorAdapter(this, R.layout.notes_row, c, from, to); setListAdapter(notes); 哪里R.id.imagefilename是ButtonImage。 这是我的LogCat: 01-25 05:05:49.877: ERROR/dalvikvm-heap(3896): 6291456-byte external allocation too large for this process. 01-25 05:05:49.877: ERROR/(3896): VM …



18
将位图保存到位置
我正在使用从Web服务器下载图像并将其显示在屏幕上的功能,如果用户希望保留图像,请将其保存在SD卡中的某个文件夹中。是否有一种简单的方法来获取位图并将其保存到我选择的文件夹中的SD卡中? 我的问题是我可以下载图像,并将其作为位图显示在屏幕上。我能够找到的将图像保存到特定文件夹的唯一方法是使用FileOutputStream,但这需要一个字节数组。我不确定如何将Bitmap转换为字节数组(即使这是正确的方法),因此可以使用FileOutputStream写入数据。 我的另一个选择是使用MediaStore: MediaStore.Images.Media.insertImage(getContentResolver(), bm, barcodeNumber + ".jpg Card Image", barcodeNumber + ".jpg Card Image"); 保存到SD卡的效果很好,但不允许自定义文件夹。
469 android  bitmap  save 


16
如何在Android中调整位图的大小?
我从我的远程数据库中获取了一个Base64字符串的位图,(encodedImage是用Base64表示图像的字符串): profileImage = (ImageView)findViewById(R.id.profileImage); byte[] imageAsBytes=null; try { imageAsBytes = Base64.decode(encodedImage.getBytes()); } catch (IOException e) {e.printStackTrace();} profileImage.setImageBitmap( BitmapFactory.decodeByteArray(imageAsBytes, 0, imageAsBytes.length) ); profileImage是我的ImageView 好的,但是在将其显示在我ImageView的布局中之前,我必须调整此图像的大小。我必须将其尺寸调整为120x120。 有人可以告诉我调整代码的大小吗? 我发现的示例无法应用于获得的base64字符串位图。
336 android  bitmap  base64 

9
将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[] 当我copyPixelsToBuffer对字节的调用全部为0 后查看缓冲区时,从相机返回的位图是不可变的……但这无关紧要,因为它正在复制。 此代码可能有什么问题?

6
如何从资源设置位图
这似乎很简单,我试图设置位图图像,但是从资源来看,我在应用程序中的可绘制文件夹中。 bm = BitmapFactory.decodeResource(null, R.id.image); 这样对吗?
279 android  bitmap 

10
将位图转换为字节数组
使用C#,有没有更好的方式来在Windows转换Bitmap到一个byte[]比保存到临时文件和读取使用的结果FileStream?
233 c#  bitmap 


21
在Android上调整大位图文件的大小以缩放输出文件
我在文件中有一个大的位图(例如3888x2592)。现在,我想将该位图的大小调整为800x533并将其保存到另一个文件中。我通常会通过调用Bitmap.createBitmapmethod 来缩放位图,但是它需要源位图作为第一个参数,我无法提供,因为将原始图像加载到Bitmap对象中当然会超出内存(例如,请参见此处)。 我也无法读取与位图,例如BitmapFactory.decodeFile(file, options),提供了BitmapFactory.Options.inSampleSize,因为我想将它调整到一个确切的宽度和高度。使用inSampleSize会将位图的大小调整为972x648(如果使用inSampleSize=4)或778x518(如果使用inSampleSize=5,则甚至不是2的幂)。 我还想避免在第一步中使用inSampleSize读取图像,例如,在972x648上读取图像,然后在第二步中将其尺寸调整为恰好为800x533,因为与直接调整原始图像的尺寸相比,其质量很差。 总结一下我的问题:是否可以读取10MP或更大的大图像文件并将其保存到新的图像文件中,并调整大小为特定的新宽度和高度,而不会出现OutOfMemory异常? 我还尝试BitmapFactory.decodeFile(file, options)将Options.outHeight和Options.outWidth值手动设置为800和533,但这种方式不起作用。
218 android  image  resize  bitmap 


13
java.lang.OutOfMemoryError:位图大小超出VM预算-A​​ndroid
我开发了一个在Android上使用大量图像的应用程序。 该应用程序运行一次,填满屏幕(上的信息Layouts,Listviews,Textviews,ImageViews,等)和用户读取的信息。 没有动画,没有特效或任何可以填满内存的东西。有时可绘制对象可以更改。有些是android资源,有些是保存在SDCARD文件夹中的文件。 然后,用户退出(该onDestroy方法被执行,并且应用程序由VM保留在内存中),然后在某个时候用户再次进入。 每次用户进入该应用程序时,我都会看到内存越来越多,直到用户获得java.lang.OutOfMemoryError。 那么处理许多图像的最佳/正确方法是什么? 我应该将它们放在静态方法中,这样就不会一直加载它们吗?我是否必须以特殊方式清洁版面或版面中使用的图像?

25
Android:将imageview中的图像旋转一个角度
我正在使用以下代码旋转ImageView中的图像一个角度。是否有任何更简单,更简单的方法可用。 ImageView iv = (ImageView)findViewById(imageviewid); TextView tv = (TextView)findViewById(txtViewsid); Matrix mat = new Matrix(); Bitmap bMap = BitmapFactory.decodeResource(getResources(),imageid); mat.postRotate(Integer.parseInt(degree));===>angle to be rotated Bitmap bMapRotate = Bitmap.createBitmap(bMap, 0, 0,bMap.getWidth(),bMap.getHeight(), mat, true); iv.setImageBitmap(bMapRotate);

9
Android Crop Center的位图
我有正方形或矩形的位图。我站在最短的一边,做这样的事情: int value = 0; if (bitmap.getHeight() <= bitmap.getWidth()) { value = bitmap.getHeight(); } else { value = bitmap.getWidth(); } Bitmap finalBitmap = null; finalBitmap = Bitmap.createBitmap(bitmap, 0, 0, value, value); 然后,我将其缩放为144 x 144位图: Bitmap lastBitmap = null; lastBitmap = Bitmap.createScaledBitmap(finalBitmap, 144, 144, true); 问题是它会裁剪原始位图的左上角,有人有代码来裁剪位图的中心吗?
149 android  bitmap  crop 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.