标签: bitmapfactory

使用蓝牙热敏打印机从Android应用程序打印图像?


我一直试图获得一张图片,但到目前为止我还没有成功.

该打印机是本地制造的2英寸热敏打印机,打印分辨率为8点/ mm,384点/线,203 dpi.
该打印机基于具有"NXP 2388 ARM v7 Microproc."的板,其内存闪存大小为512 KB,RAM:128 KB,接收缓冲区大小为16KB.

我一直关注这个问题.

问题:我尝试打印的图像是576x95 res. 在此输入图像描述

打印图像(有一些错误LED点亮并调试蜂鸣器噪音:D)但图像的方向是垂直的而不是水平打印; 也是在页面的最左侧,图像的顶部被截断

假设在这里我没有通过一些标志(同时使"数据包")与我拥有的打印机兼容.

我之前没有从事蓝牙打印,所以任何帮助都很明显:)

我现有的主要活动:

public class MainActivity extends Activity 
    {
    // will show the statuses
    TextView myLabel;
    // will enable user to enter any text to be printed
    EditText myTextbox;
    EditText devName;
    public TableLayout tl2; 
    String devid;
    String[] pName;
    String[] LODQTY;
    String[] rte;
    String[] stk;
    String[] oQty;
    String[] oVal;
    String[] fQty;

    BitSet dots;
    int mWidth;
    int mHeight;
    String mStatus;
    String TAG = …
Run Code Online (Sandbox Code Playgroud)

java android bytearray bitmap bitmapfactory

6
推荐指数
1
解决办法
1万
查看次数

BitmapFactory.decodeStream(InputStream is)为Android上的非null InputStream返回null

我正在开发一个Android应用程序,它的视图包含多个Gallerys.Gallerys(Bitmaps)的内容是互联网上的红色.

对于第一个库,一切正常,但在尝试下载第二个Gallery的第一个图像时,BitmapFactory.decodeStream(InputStream)返回null,而流是非null.

public void loadBitmap() throws IOException {

        for (int i = 0; i < images.size(); ++i) {
            URL ulrn = new URL(images.get(i).getThumbUrl());
            HttpURLConnection con = (HttpURLConnection) ulrn.openConnection();
            InputStream is = con.getInputStream();
            images.get(i).setImage(BitmapFactory.decodeStream(is));
            Log.i("MY_TAG", "Height: " + images.get(i).getImage().getHeight());
        }
}
Run Code Online (Sandbox Code Playgroud)

所述getThumbUrl()返回图像的URL(例如http://mydomain.com/image.jpg)和它抛出一个NullPointerException在线路Log.i("MY_TAG", "Height: ... ) (imagesArrayList我的类,其保持URL和位图也包含对象).

谢谢你的建议!

android gallery bitmapfactory

5
推荐指数
1
解决办法
9540
查看次数

Android:我想录制一个额外的低质量视频,并以离散数据包的形式发送.可能吗?你会怎么做?

基本上我希望能够在不到3g的时间内发送几秒延迟的"实时"馈送.如果质量很差,那就没关系.如果需要,我甚至可以使用4位灰度(尽管128-256种颜色更可取).如果有必要,我愿意以> 1fps的速度低至160x120.在这种最笨重的设置中完全未压缩意味着过度饱和的低带宽连接.

我应该简单地将快照视为图像吗?是否有人熟悉Bitmapfactory的功能,以获得最低质量的JPEG?

我应该查看PNG或GIF吗?我的理解是,固体领域最适合这些.我不确定我是否可以依赖固体场而不是天空的很大一部分,因为我希望控制一架发送回"视频"的无人机.具有几秒延迟的虚拟视频很好,甚至更好,因为我预计会丢失并重新获得服务器连接.

我在"3g"上获得128k的信号,但是我不能完全依赖它.我可以做任何必要的解码服务器端 - 这应该不是问题.

所以我问你,Stack,你想通过互联网从你的智能手机上看到,并且不能依赖于良好的连接.你怎么接近它?

compression video android bandwidth bitmapfactory

5
推荐指数
1
解决办法
1017
查看次数

从 res (BitmapFactory vs Type Casting) 从 Drawable 创建位图的有效方法

哪种方法更有效地从资源中从 Drawable 创建 Bitmap?

Bitmap myBitmap = BitmapFactory.decodeResource(context.getResources(),
                                       R.drawable.icon_resource);
Run Code Online (Sandbox Code Playgroud)

对比

Drawable myDrawable = getResources().getDrawable(R.drawable.icon_resource);
Bitmap myBitmap = ((BitmapDrawable) myDrawable).getBitmap();
Run Code Online (Sandbox Code Playgroud)

由于 API 22 以上方法已弃用,因此请使用以下方法

Drawable myDrawable = ContextCompat.getDrawable(context, R.drawable.icon_resource)
Run Code Online (Sandbox Code Playgroud)

android bitmap bitmapfactory android-resources android-drawable

5
推荐指数
1
解决办法
1029
查看次数

Android彩色格式(RGB565,ARGB8888)

    getHolder().setFormat(PixelFormat.RGBA_888);        

    Options options = new BitmapFactory.Options();       
    options.inDither=true;                               
    options.inScaled = true; 
    options.inPreferredConfig = Bitmap.Config.ARGB_8888; 
    options.inPurgeable=true;
Run Code Online (Sandbox Code Playgroud)

(使用上述选项创建的Bitmat)

使用上面的代码时,我得到以下结果.........

  • 我的平板电脑设备上没有色带
  • 测试手机上显着的色带(三星Galaxy Ace)

    getHolder().setFormat(PixelFormat.RGBA_888);        
    
    Options options = new BitmapFactory.Options();       
    options.inDither=true;                               
    options.inScaled = true; 
    options.inPreferredConfig = Bitmap.Config.ARGB_565; 
    options.inPurgeable=true;
    
    Run Code Online (Sandbox Code Playgroud)
  • 我的平板电脑上没有色带

  • Galaxy Ace上的明显色带
  • 与上述结果相同

    getHolder().setFormat(PixelFormat.RGB_565);     
    
    Options options = new BitmapFactory.Options();       
    options.inDither=true;                               
    options.inScaled = true; 
    options.inPreferredConfig = Bitmap.Config.RGB_565; 
    options.inPurgeable=true;
    
    Run Code Online (Sandbox Code Playgroud)
  • 我的平板电脑上的色带

  • SG Ace上的彩色条纹

    getHolder().setFormat(PixelFormat.RGB_565);     
    
    Options options = new BitmapFactory.Options();       
    options.inDither=true;                               
    options.inScaled = true; 
    options.inPreferredConfig = Bitmap.Config.ARGB_8888; 
    options.inPurgeable=true;
    
    Run Code Online (Sandbox Code Playgroud)
  • 我的平板电脑上的色带

  • SG Ace上的彩色条纹

因此,总之,只有PixelFormat.xxxx部分似乎有所不同.我的理解是这是设置持有者颜色格式.这将影响绘制的所有内容.(即,一切都将采取这种格式).

有人可以解释下面这行的目的是什么吗?

options.inPreferredConfig = Bitmap.Config.xxxxxxx

这似乎对已绘制的位图没有任何影响.

性能是至关重要的,所以我可能不得不更改我原来的png文件,因此它们没有渐变,(即,将它们绘制为RGB565 - 这是可取的还是我应该坚持使用8888?)还是应该抖动排序?(因为正如你所看到的,我启用它但它似乎没有帮助). …

rgb android bitmap argb bitmapfactory

5
推荐指数
1
解决办法
3万
查看次数

来自图库的图像会自动旋转 - Android

在我的Android应用程序中,我正在从设备库加载图像.在那,我面临着关于图像方向的问题.当我从图库中加载大分辨率图像时,它们会自动旋转,然后在我的视图中显示.我尝试了有关此问题的各种解决方案但无法得到正确的解决方案 我引用了getOrientation()这个链接.我已经尝试了两种解决方案,但无法获得理想的结果.ExifInterface返回正确的数据,但随后由于分辨率较大而不是因为相机方向而导致图像旋转,因此无效.请帮我解决这个问题.

谢谢.

android bitmap android-imageview bitmapfactory android-bitmap

5
推荐指数
2
解决办法
7948
查看次数

Picasso 无法解码某些图像:skia 解码返回 false

更新:这个问题似乎归结为有些图像被正确解码,而有些则没有。如果我将不工作的JPEGs 转换为pngs,它们就会工作。我直接JPEG从 a Nikon D5000、aPanasonic LumixSony Experia手机拍摄的图像都无法解码。


我用来在我的应用程序中Picasso填写 a 。然而,我遇到了要使用的图像的错误,但它对于我在网络上运行的其他图片来说效果很好。因此,我相信这与图像有关,但我不太确定。该错误出现在(据我所知)使用的库中。ListViewAndroid--- decoder->decode returned falseSkiaPicasso

例如,这张图片工作正常,而这张图片则不然,而我需要工作的是后者。我需要使用的所有其他图片都是用同一台相机拍摄的,并以Gimp相同的方式进行编辑,得到的图像与第一张类似,但它们都不起作用。因此,我怀疑这与图像本身有关,而不是与解码器有关。

弹出的几个问题:

  1. 元数据有没有可能在这个过程中发挥一些作用呢?所有图片中的元数据都是相似的。
  2. 难道是编码图像中的某些东西让编码器发疯了?如果是这样,可能是什么以及我该如何调查?文件结尾丢失或者什么?
  3. Picasso是否可以从or启用更多调试和输出Skia?例如,堆栈跟踪?
  4. 非 UTF8 字符是否会造成混乱,或者处理是否正确?示例图像中不包含 UTF8 字符,但某些图像可能包含。

我尝试过的:

  1. 我尝试打开一个无法工作的图像Inkscape并将其导出为png文件。现在,图像实际上可以工作,因此编码似乎有些问题JPEG
  2. 另一种尝试是再次打开图像Gimp并导出JPEG,但这没有帮助。
  3. 我还尝试在带有或不带有元数据的情况下打开图像Shotwell并重新导出到JPEG,但这些图像都不起作用。导出到与导出到frompng一样。pngInkscape
  4. 所有非工作图像都是用相机拍摄的,所以我尝试用手机和相机Nikon D5000拍摄一些图像。这些都不是直接工作的,但如果转换成它们,它们都会被解码。Sony ExperiaPanasonic …

android skia bitmapfactory picasso

5
推荐指数
1
解决办法
3745
查看次数

Assets的BitmapFactory.decodeStream在Android 7上返回null

如何从Android 7中的Asset目录解码位图?

我的应用程序在适用于Marshmallow的Android版本上运行良好.使用Android 7,无法从Asset目录加载图像.

我的代码:

private Bitmap getImage(String imagename) {
    // Log.dd(logger, "AsyncImageLoader: " + ORDNER_IMAGES + imagename);

    AssetManager asset = context.getAssets();
    InputStream is = null;
    try {
        is = asset.open(ORDNER_IMAGES + imagename);
    } catch (IOException e) {
        // Log.de(logger, "image konnte nicht gelesen werden: " + ORDNER_IMAGES + imagename);
        return null;
    }


    // First decode with inJustDecodeBounds=true to check dimensions
    final BitmapFactory.Options options = new BitmapFactory.Options();
    options.inJustDecodeBounds = true;
    BitmapFactory.decodeStream(is, null, options);

    // Calculate inSampleSize
    options.inSampleSize = calculateInSampleSize(options, PW, …
Run Code Online (Sandbox Code Playgroud)

android android-assets bitmapfactory android-7.0-nougat

5
推荐指数
1
解决办法
9613
查看次数

从网上获取图像时如何解决“位图无效”错误

我正在尝试制作一个显示来自在线数据库的图像的应用程序。但我想使用调色板 API 从每个图像中获得鲜艳的色彩。但我想我不知道如何使用 Bitmap decodeResource 方法或 Palette。请指导我如何在在线 URL 或 URI 图像文件中使用带有调色板的 Bitmap factory.decoderResource。

这是我在第 171 行“位图无效”中显示的活动类 recylceview 子类错误中使用的方法:

170    Bitmap photo = BitmapFactory.decodeResource(getResources(), mCursor.getPosition());
171    Palette.generateAsync(photo, new Palette.PaletteAsyncListener() {
                public void onGenerated(Palette palette) {
                    int bgColor = palette.getLightVibrantColor(getApplicationContext().getResources().getColor(android.R.color.black));
                    holder.placeNameHolder.setBackgroundColor(bgColor);
                }
            });
Run Code Online (Sandbox Code Playgroud)

所以这里是错误:

10-29 17:39:42.067 31692-31750/com.example.xyzreader E/libEGL: load_driver(/system/lib/egl/libGLES_emulation.so): dlopen failed: library "/system/lib/egl/libGLES_emulation.so" not found
10-29 17:39:42.282 31692-31692/com.example.xyzreader E/AndroidRuntime: FATAL EXCEPTION: main
                                                                       Process: com.example.xyzreader, PID: 31692
                                                                       java.lang.IllegalArgumentException: Bitmap is not valid
                                                                           at android.support.v7.graphics.Palette$Builder.<init>(Palette.java:616)
                                                                           at android.support.v7.graphics.Palette.from(Palette.java:100)
                                                                           at android.support.v7.graphics.Palette.generateAsync(Palette.java:134)
                                                                           at com.example.xyzreader.ui.ArticleListActivity$Adapter.onBindViewHolder(ArticleListActivity.java:171)
                                                                           at com.example.xyzreader.ui.ArticleListActivity$Adapter.onBindViewHolder(ArticleListActivity.java:125)
                                                                           at …
Run Code Online (Sandbox Code Playgroud)

android color-palette bitmapfactory android-bitmap android-palette

5
推荐指数
1
解决办法
1440
查看次数

如何使用 Android 的 ImageDecoder 类获取图像大小?

尝试使用ImageDecoder获取图像大小时,我找不到任何仅获取大小而不解码图像位图的选项。

使用BitmapFactory可以完成:

BitmapFactory.Options.inJustDecodeBounds = true
Run Code Online (Sandbox Code Playgroud)

此设置使解码器仅获取图像大小而无需解码并返回位图。但是ImageDecoder没有等效的选项。

另外,大小好像只有在 ImageDecoder. OnHeaderDecodedListener被调用,此时没有任何选项可以取消解码并避免返回位图。

size android bitmapfactory imagedecoder

5
推荐指数
0
解决办法
80
查看次数