我一直试图获得一张图片,但到目前为止我还没有成功.
该打印机是本地制造的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) 我正在开发一个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: ... )
(images
为ArrayList
我的类,其保持URL和位图也包含对象).
谢谢你的建议!
基本上我希望能够在不到3g的时间内发送几秒延迟的"实时"馈送.如果质量很差,那就没关系.如果需要,我甚至可以使用4位灰度(尽管128-256种颜色更可取).如果有必要,我愿意以> 1fps的速度低至160x120.在这种最笨重的设置中完全未压缩意味着过度饱和的低带宽连接.
我应该简单地将快照视为图像吗?是否有人熟悉Bitmapfactory的功能,以获得最低质量的JPEG?
我应该查看PNG或GIF吗?我的理解是,固体领域最适合这些.我不确定我是否可以依赖固体场而不是天空的很大一部分,因为我希望控制一架发送回"视频"的无人机.具有几秒延迟的虚拟视频很好,甚至更好,因为我预计会丢失并重新获得服务器连接.
我在"3g"上获得128k的信号,但是我不能完全依赖它.我可以做任何必要的解码服务器端 - 这应该不是问题.
所以我问你,Stack,你想通过互联网从你的智能手机上看到,并且不能依赖于良好的连接.你怎么接近它?
哪种方法更有效地从资源中从 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
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)我的平板电脑上没有色带
与上述结果相同
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)我的平板电脑上的色带
因此,总之,只有PixelFormat.xxxx部分似乎有所不同.我的理解是这是设置持有者颜色格式.这将影响绘制的所有内容.(即,一切都将采取这种格式).
有人可以解释下面这行的目的是什么吗?
options.inPreferredConfig = Bitmap.Config.xxxxxxx
这似乎对已绘制的位图没有任何影响.
性能是至关重要的,所以我可能不得不更改我原来的png文件,因此它们没有渐变,(即,将它们绘制为RGB565 - 这是可取的还是我应该坚持使用8888?)还是应该抖动排序?(因为正如你所看到的,我启用它但它似乎没有帮助). …
在我的Android应用程序中,我正在从设备库加载图像.在那,我面临着关于图像方向的问题.当我从图库中加载大分辨率图像时,它们会自动旋转,然后在我的视图中显示.我尝试了有关此问题的各种解决方案但无法得到正确的解决方案 我引用了getOrientation()和这个链接.我已经尝试了两种解决方案,但无法获得理想的结果.ExifInterface
返回正确的数据,但随后由于分辨率较大而不是因为相机方向而导致图像旋转,因此无效.请帮我解决这个问题.
谢谢.
android bitmap android-imageview bitmapfactory android-bitmap
更新:这个问题似乎归结为有些图像被正确解码,而有些则没有。如果我将不工作的JPEG
s 转换为png
s,它们就会工作。我直接JPEG
从 a Nikon D5000
、aPanasonic Lumix
或Sony Experia
手机拍摄的图像都无法解码。
我用来在我的应用程序中Picasso
填写 a 。然而,我遇到了要使用的图像的错误,但它对于我在网络上运行的其他图片来说效果很好。因此,我相信这与图像有关,但我不太确定。该错误出现在(据我所知)使用的库中。ListView
Android
--- decoder->decode returned false
Skia
Picasso
例如,这张图片工作正常,而这张图片则不然,而我需要工作的是后者。我需要使用的所有其他图片都是用同一台相机拍摄的,并以Gimp
相同的方式进行编辑,得到的图像与第一张类似,但它们都不起作用。因此,我怀疑这与图像本身有关,而不是与解码器有关。
弹出的几个问题:
Picasso
是否可以从or启用更多调试和输出Skia
?例如,堆栈跟踪?我尝试过的:
Inkscape
并将其导出为png
文件。现在,图像实际上可以工作,因此编码似乎有些问题JPEG
。Gimp
并导出JPEG
,但这没有帮助。Shotwell
并重新导出到JPEG
,但这些图像都不起作用。导出到与导出到frompng
一样。png
Inkscape
Nikon D5000
拍摄一些图像。这些都不是直接工作的,但如果转换成它们,它们都会被解码。Sony Experia
Panasonic …
如何从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) 我正在尝试制作一个显示来自在线数据库的图像的应用程序。但我想使用调色板 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
尝试使用ImageDecoder获取图像大小时,我找不到任何仅获取大小而不解码图像位图的选项。
使用BitmapFactory可以完成:
BitmapFactory.Options.inJustDecodeBounds = true
Run Code Online (Sandbox Code Playgroud)
此设置使解码器仅获取图像大小而无需解码并返回位图。但是ImageDecoder没有等效的选项。
另外,大小好像只有在 ImageDecoder. OnHeaderDecodedListener被调用,此时没有任何选项可以取消解码并避免返回位图。
android ×10
bitmapfactory ×10
bitmap ×4
argb ×1
bandwidth ×1
bytearray ×1
compression ×1
gallery ×1
imagedecoder ×1
java ×1
picasso ×1
rgb ×1
size ×1
skia ×1
video ×1