将位图的Java代码转换为C#代码 在Console应用程序中
我正在尝试将Java代码转换为C# 所以这是Java代码 BitmapFactory.Options options = new BitmapFactory.Options(); options.inSampleSize = 1; options.inPreferredConfig = Bitmap.Config.ARGB_8888; Bitmap decodeStream = BitmapFactory.decodeStream(openInputStream, null, options); 然后,我通过 保存此位图 File appDirectory= Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS); File dest = new File(appDirectory, "yourImage.jpg"); try (FileOutputStream
10 2024-04-26
编程技术问答社区
为graphics2D寻找安卓等效代码
我一直在尝试为以下内容获取Android等效代码: private BufferedImage user_space(BufferedImage image) { BufferedImage new_img = new BufferedImage(image.getWidth(), image.getHeight(), BufferedImage.TYPE_3BYTE_BGR); Graphics2D graphics = new_img.createGraphics(); graphics.drawRenderedImage(image, null); graphics.dispose(); return new_img; } 我想要一个与Graphics2D相当的Android等效物.我已经搜索了一段时间,并发现Android中的画布可以执行一些与GraphICS2D类执行的类似任务,但主要问题是我没有在整个过程中获得与
4 2024-04-04
编程技术问答社区
位图运行时出现内存不足错误的异常
我正在显示我的图像中的图像/图像文件夹, 但是此代码不起作用.此代码显示图库中资产文件夹中的图像.我正在使用画廊的预定库或罐子文件. 请专业检查一下.谢谢你 AssetManager assetManager = getAssets(); String[] files = null; try { files = assetManager.list("image"); } catch (IOException e) { Log.e("tag", e.getMessage()); } for(String filename : files) { System.out.println("File name => "+filename); InputStream in = null; try { ImageViewTouch imageVi
4 2024-03-31
编程技术问答社区
大的可绘制的JPG图像的问题
在几天内,我一直在这里和互联网上在许多帖子中查找有关正在加载或移动大型JPG图像的问题的解决方案(到目前为止,它是可绘制的回顾症),我认为是时候了问自己,有很多问题和解决方案非常相关. 我正在开发带有OpenGL的3D地形模拟,问题是我用作地形纹理是一个很大的JPG图像(2048x2048 = 1,94 MB). 让我们看一下我做过的一些工具: 1st: Bitmap terrainBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.terrain, options); 这个人立即崩溃,可能是因为图像太大 第二: Uri path = Uri.parse("android.resource://com.jgc.my_app/" + R.drawable.terrain); URL ulrn;ulrn = new URL(path.getPath()); HttpURLCo
6 2024-03-31
编程技术问答社区
当调用.exists()时,文件确实存在,但后来却找不到它了。
我正在尝试创建一个最终要保存图片(Extra_output)的文件: File mediaStorageDir = new File(Environment.getExternalStoragePublicDirectory( Environment.DIRECTORY_PICTURES), "scouthouse"); if(!mediaStorageDir.exists()) { mediaStorageDir.mkdirs(); } SimpleDateFormat s = new SimpleDateFormat("ddMMyyyyhhmmss"); String format = s.format(new Date()); File file = new File(me
4 2024-03-31
编程技术问答社区
为什么Bitmap.decodeFile()方法会返回空值?
我试图将文件解码为这样的位图 - BitmapFactory.Options options = new BitmapFactory.Options(); try { Bitmap bitmap = BitmapFactory.decodeFile(mCurrentPhotoPath, options); cropImageView.setImageBitmap(bitmap); Log.d("Musik","bitmap - "+bitmap+" "+mCurrentPhotoPath); } catch (Exception e){ Log.d("Musik",e.toString()); } 我的mcurrentphotopath是 file:/storage/sdcard0/Android/data/com.example.iaugmentor.iaugmentort
10 2024-03-31
编程技术问答社区
BitmapFactory.decodeStream()返回一个比原来多100倍的Bitmap。
我的PNG图像为168.2KB和1991x1756,并试图使用BitmapFactory.decodeStream()将其导入Bitmap.问题在于我遇到OutOfMemoryError Bitmap大小最终为13,657kb. 我不明白的是,为什么该文件在导入之后如此之大,以及如何减轻此功能. 似乎对于解码Bitmap图像,此OutOfMemoryError问题很常见,但找不到解决方法.有什么想法吗? Bitmap bitmap = BitmapFactory.decodeStream(inputStream, null, bitmapOptions); E/AndroidRuntime(10744): java.lang.OutOfMemoryError: bitmap size exceeds VM budget(Heap Size=7815KB, Allocated=3279KB, Bitmap Size=13657KB) 解决方案 PNG文件是高度压缩的
2 2024-03-31
编程技术问答社区
如何使用位图工厂来压缩图像而不降低从相机拍摄的质量?
我有3张从相机拍摄的图像,我想设置为3个映像视图.但是,由于图像具有较大的尺寸,因此会引发更多信息.我读过,位图工厂可以压缩大小而不会降低质量.问题是我不知道该怎么做. 这是我的单击按钮: openCameraButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); file = new File(Environment.getExternalStorageDirectory(), "imagename.jpg");
8 2024-03-31
编程技术问答社区
Android ImageView setImageBitmap
我正在尝试更好地了解Android如何处理图像,以便更有效地使用内存.我有一个存储在Bitmap中的图像,并且我正在使用ImageView.setImageBitmap()显示它.现在的问题是 - 它将使用Bitmap我将来通过了它,还是将其副本进行副本,而我创建的Bitmap在致电setImageBitmap后不再使用? Asuming它将继续参考我通过的Bitmap,当使用inPurgeable创建BitmapFactory时,它将如何表现? ImageView是否可以防止Bitmap从内存中暂时清除?只有在ImageView具有View.VISIBLE状态时,还是View.GONE和View.INVISIBLE时会发生?或者也许仅在ImageView上可见时? 还有一件事 - 浏览Android源代码揭示了编码的字节数据总是复制到内存中(inInputShareable当前被忽略).它是否计入Android Java应用程序的16/24MB内存限制? 谢谢
4 2024-03-31
编程技术问答社区
BitmapFactory.decodeFile()在某些设备中返回空值
我正在使用.我想压缩图像. BitmapFactory.Options options = new BitmapFactory.Options(); options.inJustDecodeBounds = true; Bitmap bmp = BitmapFactory.decodeFile(filePath, options); int actualHeight = options.outHeight; int actualWidth = options.outWidth; 从相机,画廊和照片中选择图像后,我会根据OS类型和设备模型在不同设备中获得不同类型的路径.喜欢: 1)/储存/仿真/0/android/data/... 2)/raw//storage/emulaty/0/mb/1511172993547.jpg 3)/2/1/content://Media/external/images/Media/11647/oneration/none/non
6 2024-03-31
编程技术问答社区
在android中从URL加载位图到ImageView
我正在使用以下方法从URL检索位图并将其传递到ImageView,但映像视图没有被更新. public static Bitmap LoadImageFromWebOperations(String url) { Bitmap bitmap; try { InputStream is = new URL(url).openStream(); bitmap = BitmapFactory.decodeStream(is); return bitmap; } catch (Exception e) { return null; } 呼叫 - mov1_poster.setImageBitmap(VPmovies.LoadImageFromWebOperations(mov_details[0][7])); //doesn't work Toast.makeText(th
2 2024-03-31
编程技术问答社区
BitmapFactory的内存不足错误
今天我崩溃了,出于内存错误. java.lang.outofmemoryerror 在android.graphics.bitmapfactory.nativedecodeasset 我只使用Bitmap工厂来回归我的动作栏 代码: BitmapDrawable background = new BitmapDrawable (BitmapFactory.decodeResource(getResources(), R.drawable.actionbar)); background.setTileModeX(android.graphics.Shader.TileMode.REPEAT); actionbar.setBackgroundDrawable(background); 这个错误在活动开始时不会发生,它发生在大量的活动中. . 有人可以告诉我如何修复此 编辑编辑编辑 这是开发人员控制台中的
8 2024-03-31
编程技术问答社区
在SurfaceView上加载和显示jpeg的最快方法?
这是我最后一个问题的跟进: canvas绘制太慢 现在我可以更快地绘制图像,我面临的问题是图像的实际加载花费太长了. 在我正在处理的应用程序中,用户能够连续播放视频帧(JPEG),就好像他是在实时查看视频一样.我一直在使用BitmapFactory.decodeFile()将每个JPEG加载到位图中.我无法一次加载所有图像,因为其中大约有240个图像,这将耗尽我所有的堆空间.我一直在做的是通过单独的线程将多达6个预加载到一个数组中,以减少每个图像显示的时间. 不幸的是,加载图像需要50至90ms,我需要每42ms显示图像.是否可以加载图像的速度更快? 为了澄清,这些图像位于SD卡上的文件夹中,它们都是720x480 JPEG.我正在以一半的大小对它们进行采样以减少记忆使用量. 解决方案 我最终与最初设想的那样做了很多不同.有很多,但这是我实现目标的要旨: 所有图像都存储在SD卡上,并写入一个文件(每个图像占据了文件中的X字节) 使用本机代码从图像文
6 2024-03-31
编程技术问答社区
Android-BitmapFactory.decodeByteArray-OutOfMemoryError(OOM)。
我已经阅读了有关OOM问题的100篇文章.大多数是关于大的位图.我正在做一个映射应用程序,我们下载256x256天气覆盖图块.大多数是完全透明的,而且很小.我刚刚在打电话BitmapFactory.decodeByteArray(....).> 时在一个442字节的位图流上崩溃 例外状态: java.lang.OutOfMemoryError: bitmap size exceeds VM budget(Heap Size=9415KB, Allocated=5192KB, Bitmap Size=23671KB) 代码是: protected Bitmap retrieveImageData() throws IOException { URL url = new URL(imageUrl); InputStream in = null; OutputStream out = null; HttpURLConnection conne
2 2024-03-31
编程技术问答社区
图库中的图片会自动旋转-安卓
在我的Android应用程序中,我正在从设备库加载图像.当我从图库中加载大分辨率图像时,它们会自动旋转,然后在我的视图中显示.我尝试了有关此问题的各种解决方案,但无法获得适当的解决方案.我推荐 getorientation()和 this 链接.我已经尝试了这两种解决方案,但无法获得期望的结果.ExifInterface返回正确的数据,但由于图像的旋转,因此它们没有帮助,因为它们的分辨率很大,不是因为相机的方向.请帮助我解决此解决方案. 谢谢. 解决方案 这很好; public class ExifUtils { public static Bitmap getRotatedBitmap(Context context, Uri uri) { try { Bitmap bitmap = MediaStore.Images.Media.getBitmap(context.getContentResolver(), uri); f
4 2024-03-31
编程技术问答社区
从res的Drawable中创建Bitmap的有效方法(BitmapFactory vs Type Casting)。
哪种方法更有效地从资源中绘制的可绘制的位图? Bitmap myBitmap = BitmapFactory.decodeResource(context.getResources(), R.drawable.icon_resource); vs Drawable myDrawable = getResources().getDrawable(R.drawable.icon_resource); Bitmap myBitmap = ((BitmapDrawable) myDrawable).getBitmap(); 由于上面的API 22被弃用,因此请使用以下 Drawable myDrawable = ContextCompat.getDrawable(context, R.drawable.icon_resource) 解决方案 您可以在 http://source.andr
0 2024-03-31
编程技术问答社区
获取位图Android的大小
可能的重复: bitmap byte-size解码后? 无论如何是否可以得到这个位图的大小?我尝试使用getByTecount(),但我不能使用它? Bitmap bitmap = BitmapFactory.decodeByteArray(decryptedData , 0, decryptedData .length); //decoding bytearrayoutputstream to bitmap 有什么建议? 解决方案 您可以从 api "> api 中看到.可以使用 getWidth() getHeight() 对于像素中的位图的大小. ,如果它是字节的数组(8bit = 1 byte),则只需decryptedData.length - offset,您就知道位图中有多少个字节. 还是我在这里错过了什么? 其他解决方案 如果图像是本地存储的,则可以执行以下 public long getImageLen
4 2024-03-31
编程技术问答社区
BitmapFactory.Options.inBitmap在频繁切换ImageView位图时导致撕裂现象
我遇到了一个情况,我必须在幻灯片中显示图像,该幻灯片非常快速地切换图像.庞大的图像数量使我想将JPEG数据存储在内存中,并在我想显示它们时对其进行解码.为了简化垃圾收集器,我正在使用 bitmapfactory.options. inbitmap 重复使用位图. 不幸的是,这会导致相当严重的撕裂,我尝试了不同的解决方案,例如同步,信号量,在2-3个位图之间交替,但是,似乎都没有解决问题. 我已经设置了一个示例项目,该项目在Github上演示了此问题; https://github.com/berglund/android-android-tearch-tearch-tearhing-example-example 我有一个线程,可以解码位图,将其设置在UI线程上,然后睡5 ms: Runnable runnable = new Runnable() { @Override public void run() { while(true) {
2 2024-03-31
编程技术问答社区
优化使用BitmapFactory.Options.inSampleSize以提高速度
感谢 schermvlieger 询问 anddev.org上的问题, 我只是将他的问题复制到So中,因为没有人在另一个网站上回答,我也面临着同样的问题. 我想知道在显示图像的速度方面,BitmapFactory.Options.inSampleSize的最佳用途是什么. 文档使用2个幂的值提到,所以我正在使用2、4、8、16等. 我想知道的事情是: 我应该将其重新采样至最小的尺寸,该尺寸仍然比屏幕分辨率大,还是应该将大小缩小到足以避免OutOfMemoryError? 的大小 一个人如何计算图像的最大大小,而图像的最大大小仍然可以在没有内存的情况下显示出来?图像的颜色深度是否也起作用,并且显示深度? 通过两种机制显示图像是有效的(BitmapFactory对于大文件,setImageURI()对于较小的文件),我正在使用ImageSwitcher. 它可以帮助创建Bitmap,BitmapFactory.Options和inTempStorage在应用程
10 2024-03-31
编程技术问答社区
如何在BitmapFactory中保持图像质量不变
我已经将一个位图映像转换为字符串以保存: ............ Bitmap photo = extras.getParcelable("data"); ByteArrayOutputStream baos = new ByteArrayOutputStream(); photo.compress(Bitmap.CompressFormat.JPEG, 100, baos); byte[] b = baos.toByteArray(); String encodedImage = Base64.encodeToString(b, Base64.DEFAULT); 然后,我从字符串中检索位图以设置活动的背景: byte[] temp = Base64.decode(encodedImage, Base64.DEFAULT); Options options = new BitmapFactory.Options(); options.inScaled = false;
2 2024-03-31
编程技术问答社区