Articles of 位图

将联系人图像加载到位图中

我用来从电话号码获取联系人图像缩略图的Uri的function。 : public static Uri getPhotoURIFromAddress(Context activity, String address) { String contactId = getContactIdFromAddress(activity, address); ContentResolver contentResolver = activity.getContentResolver(); try { Cursor cursor = contentResolver .query(ContactsContract.Data.CONTENT_URI, null, ContactsContract.Data.CONTACT_ID + “=” + contactId + ” AND ” + ContactsContract.Data.MIMETYPE + “='” + ContactsContract.CommonDataKinds.Photo.CONTENT_ITEM_TYPE + “‘”, null, null); if (cursor != null) { if (!cursor.moveToFirst()) { return […]

如何在Android中完全加载ImageView时获取

我正在开发一个应用程序,它在一堆图像上绘制线条。 要选择这些图像,我有一个广播组,每当用户点击一个单选按钮时,图像就会加载所有图纸。 在我的收音机听众中,我有以下代码: bitmap = BitmapUtils.decodeSampledBitmapFromResource(root + DefinesAndroid.CAMINHO_SHOPPINGS_SDCARD + nomeImagemAtual, size.x, size.y); mImage.setImageBitmap(bitmap); mImage.setDrawLines(true); mImage.setImageBitmap(loadBitmapFromView(mImage)); 我从Android开发人员的这个链接获得的decodeSampledBitmapFromResource方法(它更有效地加载位图) http://developer.android.com/training/displaying-bitmaps/load-bitmap.html 这是我调用的方法来获取视图的位图 public static Bitmap loadBitmapFromView(View v) { Bitmap b = Bitmap.createBitmap( v.getLayoutParams().width, v.getLayoutParams().height, Bitmap.Config.ARGB_8888); Canvas c = new Canvas(b); v.layout(0, 0, v.getLayoutParams().width, v.getLayoutParams().height); v.draw(c); return b; } 我正在设置mImage的图像Bitmap,因为我正在使用ImageViewTouch库(它可以在ImageView上进行缩放缩放),如果我不这样做,所有canvas绘图都会被删除,图像上的任何交互都会被删除(比如放大)输入/输出)。 错误日志如下 07-11 21:13:41.567: E/AndroidRuntime(20056): java.lang.IllegalArgumentException: width and height must be […]

将位图的大小调整为固定值,但不更改宽高比

我正在寻找以下问题的解决方案:如何将Bitmap的大小更改为固定大小(例如512×128)。 必须保留位图内容的宽高比。 我认为它应该是这样的: 创建一个空的512×128位图 缩小原始位图以适应512×128像素并保持纵横比 将缩放复制到空位图(居中) 实现这一目标的最简单方法是什么? 所有这一切的原因是,当图像的纵横比不同时, GridView混淆布局。 这是一个截图(除最后一个之外的所有图像的纵横比为4:1): 截图

Android:Bitmap to Byte Array and back:SkImageDecoder :: Factory返回null

目标是将Bitmap转换为byte [] ,在一组数据中的活动之间传递它,然后在稍后阶段将其重新转换回Bitmap以在Imageview显示。 问题在于,每当我尝试这个时,我只会获得一个空位图和非描述性,无用的日志输出: 12-07 17:01:33.282: D/skia(2971): — SkImageDecoder::Factory returned null 我查看了以下解决方案: 解决方案将位图提供给使用的byte []代码 突出显示copyPixelsToBuffer()对.compress至关重要 (特别是因为在这种情况下没有必要)。 我已经运行了以下测试用例,这肯定会将问题缩小到转换和恢复代码。 根据我的调试,有正确的解码,字节数组是正确的大小和完整,位图配置被迫是相同的, decodeByteArray只是失败: package com.example.debug; import java.nio.ByteBuffer; import android.os.Bundle; import android.app.Activity; import android.graphics.Bitmap; import android.graphics.Bitmap.Config; import android.graphics.BitmapFactory; import android.util.Log; import android.view.Menu; import android.widget.ImageView; import android.widget.RelativeLayout; public class MainActivity extends Activity { RelativeLayout rl = null; RelativeLayout.LayoutParams rlp = null; […]

Pixel-Perfect Collision Detection Android

好的,我正在开发一款Android游戏。 我需要实现像素完美碰撞检测。 我已经在每个图像周围设置了边界框,每个边界框都被转换以匹配图像的当前旋转。 一切都很好。 我还将每个位图的像素数据存储在一个数组中。 有人可以帮我找出检测像素是否重叠的最有效方法吗? 在此先感谢您的帮助!

使用Bitmap.Config.RGB_565将内存中的位图转换为位图

我有一个加载的位图,我想转换为将配置设置为Bitmap.Config.RGB_565 。 在Bitmap已经加载到内存后,是否有一种简单的方法将Bitmap转换为此配置? 例如,下面我有一个从应用程序资源解码的位图,但是,如何将已经加载的Bitmap转换为RGB_565 ? 我确信它很简单,但是,我对使用Bitmaps很新,经过几个小时的在线查看,遗憾的是我无法find我需要的东西。 BitmapFactory.Options options = new BitmapFactory.Options(); options.inPreferredConfig=Bitmap.Config.RGB_565 bitmap=BitmapFactory.decodeResource(getResources(), R.drawable.myphoto ,options);

将String文本转换为Bitmap

是否可以将EditText框内的字符串文本转换为位图? 换句话说,有没有办法将字符串文本转换为位图,这意味着文本将显示为图像? 以下是我的代码: class TextToImage extends Activity { protected void onCreate(Bundle savedInstanceState) { //create String object to be converted to image String sampleText = “SAMPLE TEXT”; String fileName = “Image”; //create a File Object File newFile = new File(“./” + fileName + “.jpeg”); //create the font you wish to use Font font = new Font(“Tahoma”, […]

尽管使用了减少的样本大小,但BitmapFactory.decodeStream内存不足

我已经阅读了许多关于解码位图的内存分配问题的相关post,但即使在使用官方网站提供的代码后仍然无法find解决以下问题的方法。 这是我的代码: public static Bitmap decodeSampledBitmapFromResource(InputStream inputStream, int reqWidth, int reqHeight) { ByteArrayOutputStream baos = new ByteArrayOutputStream(); byte[] buffer = new byte[1024]; int len; try { while ((len = inputStream.read(buffer)) > -1) { baos.write(buffer, 0, len); } baos.flush(); InputStream is1 = new ByteArrayInputStream(baos.toByteArray()); InputStream is2 = new ByteArrayInputStream(baos.toByteArray()); final BitmapFactory.Options options = new BitmapFactory.Options(); options.inJustDecodeBounds […]

比较Android中的位图图像

有没有办法检查位图是否相同 ? 有人可以帮我吗?

从毕加索获得图像uri?

我有一个相当大的图像URL列表,我用它来加载使用Picasso的ViewPager 。 我需要能够通过意图(最终通过ShareActionProvider共享)为这些图像提供共享function。 从我所读到的,毕加索并不是真正能够开箱即用来处理这类事情,尽管它提供了所有必要的工具。 我在研究之前的计划是创建一个简单的LruCache ,它使用url作为键和位图值。 这个缓存将通过Picasso的Target界面在onBitmapLoaded进行。 每当我想要共享图像时,我都会检查位图的缓存。 如果它不在那里,我将与毕加索一起取。 既然我有一个缓存的位图,我会写一个文件(…这部分似乎不对,虽然我必须写一个文件来获取一个uri,对吗?)并添加文件uri到意图。 但是我看到使用Picasso.Builder我可以设置(并保留对我自己的缓存的引用) – https://stackoverflow.com/a/18552559/413254 。 这意味着我可以通过正确实现hashCode和equals方法来消除自定义Target和混淆,以确保准确的回收,检索等。 我的问题是,毕加索如何使用这个缓存? 有什么关键? 有没有办法获得位图Uri而不将其写入磁盘?