背景
我正在写一个简单的应用程序,其中的应用程序提取像素颜色从RGB_565格式的位图,并通过BLE发送到蓝牙设备
我正在获取argb格式的int[]颜色,并且我想要RGB_565格式,所以我从Color.red(-10267343)中提取了红、绿、蓝颜色,其中-10267343是我从getPixel(x,y)中获取的像素的颜色
我得到了
red : 99
green : 85
blue : 99 //from the above color value -10267343
我的问题是如何在两个字节中添加这些红、绿、蓝颜色
我需要这种格式的|R|R|R|R|R|G|G|G|G|G|G|B|B|
在我的应用程序中,我有一个自定义视图,它呈现一些位图,并使用onDraw()将它们绘制到视图的画布上。画布首先用一种颜色填充。本质上,我有以下代码:
public static int COLOR = Color.rgb(200, 50, 50);
@Override
public void onDraw(Canvas canvas) {
canvas.drawColor(COLOR);
Bitmap bitmap = Bitmap.createBitmap(100, 100, Bitmap.Config.RGB_565);
Canvas c = new Canva
我有一个单通道的PNG文件,我想用它作为Porter-Duff绘图操作的alpha掩码。如果我在没有任何选项的情况下加载它,得到的位图有一个RGB_565配置,即被视为灰度。如果我将首选配置设置为ALPHA_8,它会将其加载为灰度ARGB_8888。
如何说服Android将此文件视为alpha掩码而不是灰度图像?
mask1 = BitmapFactory.decodeStream(pngStream);
// mask1.getConfig() is now RGB_565
BitmapFactory.Options maskOpts = new BitmapFactory.Option
我正在尝试将从rest调用中获得的图像转换为灰度图像,但是我需要保持透明度,因为该图像是地图上的叠加。我试过了:
Bitmap bmpGrayscale = Bitmap.createBitmap(width, height, Bitmap.Config.RGB_565);
Canvas c = new Canvas(bmpGrayscale);
Paint paint = new Paint();
ColorMatrix cm = new ColorMatrix();
cm.setSaturation(0);
ColorMatrixColorFilter f = new ColorMatri
在.NET中,检查位图图像的位深度的一种方法是使用Bitmap类,如下所示:
switch (bitmap.PixelFormat) {
case System.Drawing.Imaging.PixelFormat.Format1bppIndexed: return 1;
case System.Drawing.Imaging.PixelFormat.Format4bppIndexed: return 4;
case System.Drawing.Imaging.PixelFormat.Forma
可能重复:
我试图使用四个位图1024x1024,我需要有四个在内存中,因为我正在创建一个图库,必须在景观模式下显示四个可缩放的位图。
它正在研制摩托罗拉Droid 2.2.3,但在星系spica (2.1)上却失败了。这是我对spica的例外:
02-28 15:45:25.963: ERROR/dalvikvm-heap(17109): 4194304-byte external allocation too large for this process.
02-28 15:45:25.968: ERROR/(17109): VM won't let us allocat
我只是尝试使用FloodFill类,我发现了奇怪的着色问题。
让我们从代码开始:
public class FloodFill {
public void floodFill(Bitmap image, Point node, int targetColor,
int replacementColor) {
int width = image.getWidth();
int height = image.getHeight();
int target = targetColor;
int replacement = replacementCol
我正在尝试拍摄一个视图的“屏幕截图”,然后在另一个活动中再次使用它。问题是,当我这样做的时候,特定的颜色似乎会被弄乱。
补充说明:
图像由灰度基图像组成,在带有alpha值的重叠图像上有红色或绿色。
- The view is shown in the parent view by setting it with an inflator. In other words, I have a layout, and within it I have a section
<!-- THIS GUY HERE needs to be set to show the correct v
我的应用程序中有以下代码。在这里,我基本上是在灰度化一个位图。模糊的位图是通过模糊图像获得的。
final Bitmap resultBitmap = Bitmap.createBitmap(blurred.getWidth(), blurred.getHeight(), Bitmap.Config.ARGB_8888);
final Canvas c = new Canvas(resultBitmap);
c.drawBitmap(blurred, 0, 0, null);
final Paint p = new Paint();
p.setAl
在我的android应用程序中,我使用了以下API:
( A) Window.setFormat(PixelFormat)
( B) SurfaceView.getHolder().setFormat(PixelFormat)
( C) OpenGL: EGL10.eglCreateWindowSurface(.)
为了正确使用/理解这些API,我需要找到以下问题的答案(问题4对我来说最重要):
A)和B)在每个设备模型上所支持的值是什么?它们是只依赖于android版本,还是必须在运行时查询其他API才能找到?
当A)和B)根本没有调用时,默认值是什么?它们只依赖于android版本
我是Android开发中的新手,我有以下问题。
我实现了以下代码,它使用Canvas绘制一个位图(它将5个图标相隔一处),所以这是我的代码:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// Retrieve the ImageView having id="star_container" (where to put th
我有一个简单的基于位图的填充算法,它接受一个颜色,并用该颜色填充位图的一个区域。我看到的问题是,在我的手机HTC Evo 4G上,当算法填充位图时,它实际上是放置了不同颜色的像素,而在Galaxy Tab 10.1上,相同的代码在整个区域放置了单一的颜色。一些代码将使这一点变得更清楚。
Bitmap dst = ...
int replacementColor = Color.GRAY; //Color.DKGRAY and Color.LTGRAY also show the issue
dst.setPixel(x, y, replacementColor);
if(dst.getPix
有人能提供一个使用libwebp库将图像编码到webp的示例吗?
我试图使用下面的代码将从摄像机中捕获的图像编码为RGB_565:
@Override
public void onPreviewFrame(byte[] data, Camera camera) {
int w = camera.getParameters().getPreviewSize().width;
int h = camera.getParameters().getPreviewSize().height;
try {
int stride
我正在为我的最后一年做一个人脸识别项目。我必须在Android上使用本地二进制模式(LBP)进行人脸识别。
我在互联网上搜索了很多使用java中的LBP进行人脸识别的代码,但找不到任何在android上可以实现的代码。所以现在我不得不写下所有的东西,我对android和图像处理都是个新手。
我已经找到了一种从相机中捕捉图像的方法。
public class CameraCapture extends Activity {
protected boolean _taken = true;
File sdImageMainDirectory;
protected static final St
我试图修复的问题,但遇到了dalvikvm-heap Out of memory on a 63489040-byte allocation.错误的问题。我看了看,但这个问题没有任何帮助。我不知道该怎么解决这个问题。我试着在位图上调用recycle(),但不起作用。
String file = getRealPathFromURI(Uri.parse(mUriString));
BitmapFactory.Options bounds = new BitmapFactory.Options();
bounds.inJustDecodeBounds = true;
BitmapFactory.d