草庐IT

java - 自动调整位图图像的亮度、对比度和清晰度

正如标题本身所暗示的一切......我必须首先自动调整对比度、亮度和清晰度,然后如果需要我必须提供手动调整搜索栏。有没有自动调整的库? 最佳答案 OpenCV可以执行这样的操作。Hereisatutorial对比度和亮度。OpenCVcomeswithandroidports,以及一个非常活跃的社区。对您来说,一个好的起点是cvEqualizeHist,这将自动调整一个channel图像(BW)的亮度和对比度。您可以找到非常简单的方法来找到自动调整,但我认为您仍然需要做一些工作:)。 关

java - 缩放 Canvas 后位图质量丢失

我想绘制在Canvas中缩放的位图(基于位图和View大小)。问题是,如果我在绘制位图之前缩放Canvas:canvas.scale(1.5f,1.5f);canvas.drawBitmap(mBitmap,0,0,paint);这是结果:但是如果我不缩放Canvas而是缩放位图:Bitmapscaled=Bitmap.createScaledBitmap(mBitmap,bitmapWidth,bitmapHeight,true);canvas.drawBitmap(scaledBitmap,0,0,paint);结果好多了:问题是位图非常大,在内存中同时拥有原始位图和缩放后的位图可

android - 如何从android中的位图对象获取mime类型?

我想获取位图对象的mime类型。实际上我已经使用压缩了位图bitmap.compress(Bitmap.CompressFormat.PNG,100,stream);现在我想交叉检查格式、outBounds和内存空间大小。但我不想做一个冗长或乏味的任务,例如。将其转换回流,然后使用带选项的BitmapFactory将其再次转换为BItmap。 最佳答案 正如Dmitry所建议的那样,如果您拥有的是流中的压缩图像,那么您确实需要使用BitmapFactory对其进行解码以判断它是什么类型。(从技术上讲,您也可以自己读取流并对其运行您自

android - 将位图写入外部存储(sdcard)

我正在尝试将我在某些Activity中拥有的位图保存到我为此目的创建的目录中的外部存储。将图像保存到sdcard(外部存储器,而不是外部sd)的方法在不同的类(和不同的包)中,所以我假设我需要上下文,但我找不到任何地方来提供上下文(试过openFileOutput但它得到StringfileName不能包含路径分隔符)。当我运行我的代码时,我在日志cat中收到此错误:04-1122:13:14.899:E/error(13833):/mnt/sdcard/myTomatoes/covers/378194.PNG:openfailed:ENOENT(Nosuchfileordirecto

java - 如何在 Canvas 的右上角绘制位图

我正在尝试在Canvas的右上角上绘制位图到目前为止,我已经完成了以下工作://100x40dimensionsforthebitmapbitmap=BitmapFactory.decodeResource(getResources(),R.drawable.backbutton);Rectsource=newRect(0,0,bitmap.getWidth(),bitmap.getHeight());RectbitmapRect=newRect(0,0,canvasWidth-200,50);canvas.drawBitmap(bitmap,source,bitmapRect,pai

android - 在android上转换原始位图

所以,我正在使用这个库https://github.com/thuytrinh/android-collage-views将“MultiTouchListener”功能添加到我的ImageView。基本上,我让用户根据自己的需要使用旋转、缩放和平移来修改照片。现在唯一的问题是如何保存它。我是这样做的:Bitmapbitmap=Bitmap.createBitmap(imageContainer.getWidth(),imageContainer.getHeight(),Bitmap.Config.ARGB_8888);Canvascanvas=newCanvas(bitmap);can

android - 从相机压缩位图

我需要通过网络发送从相机拍摄的图像。图像太大,无法创建使用bitmap.compress()所需的位图;看起来Gmail应用程序可以附加来自相机的图像,同时保持其大像素大小,但文件大小大大减少。这是行不通的,因为我getBitmap()将返回一个较大的图像来分配,我不想将其子采样到较小的尺寸。ByteArrayOutputStreambaos=newByteArrayOutputStream();getBitmap().compress(Bitmap.CompressFormat.JPEG,70,baos);关于如何在不超出我的总内存的情况下执行相同操作的任何想法?更新:对于任何回到此

android - 我的滚动位图 Canvas 使用起来太慢

我正在学习为Android编程。我已经制作了一些基本游戏,但为了学习,我想制作一款汽车驾驶游戏。我想到的最简单的方法是将汽车保持在屏幕中间并滚动背景以产生运动的错觉。作为找出引擎的实验,我创建了一个2048x1200位图,我从PNG加载它。这将是map。然后我创建一个1024x600的新位图,从我在屏幕上显示的map裁剪。我这样做是因为getWidth()和getHeight()给出了这些尺寸。我每次都根据在屏幕上显示的运动进行不同的裁剪。不幸的是,我发现它使用起来太慢了。如果我想让它平稳,汽车就必须以蜗牛的速度移动。我得到大约18fps。我正在使用JamesDaniello'sSim

android - OPEN GL Android - 如何将位图对象转换为可绘制纹理

我正在尝试在OPENGL2.0中实现可滚动图像的网格。我已经使用CanvasDrawing实现了View,但出于性能原因,我决定过渡到OGL。在我的实现中,我在每一帧绘制一个Bitmap对象列表,每个Bitmap都是缓存的图像缩略图行。现在我该如何将这些位图转换为我可以与OGL一起使用的纹理? 最佳答案 GLES20.glBindTexture(GLES20.GL_TEXTURE_2D,textureID);GLUtils.texImage2D(GLES20.GL_TEXTURE_2D,0,bitmap,0);..其中texture

android - 从通过 libjpeg 从 JPEG 文件解压缩的字节数组创建位图

我使用libjpeg(C库)解压缩JPEG文件。现在我有一个无符号字符数组。我如何在JNI中从该数组创建位图? 最佳答案 是的,是possible,但走这条路应该有充分的理由。为获得最佳性能,请使用Bitmapbm=BitmapFactory.decodeByteArray(jpegArray,0,jpegArray.length);即使您需要对同一个jpeg解码两次-一次在C中,一次在Java中,它也会为您节省编程工作量和执行时间。请注意,Android内置了libjpeg(请参阅您设备上的/system/lib),decodeB