Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Eiffelyk/Multi-Image2one

Folders and files

NameName
Last commit message
Last commit date

Latest commit

History

1 Commit

Repository files navigation

一个简单的 将多个image中的图片抓取 合成同一张图bitmap

主要实现思路 将imageView的图片缓冲开启,之后从中获取bitmap 加入到canvas上之后关闭缓冲区,然后将canvas保存成bitmap,如果你后续需要File保存到本地文件,或者是post到web都根据bitmap进行操作,但是一定要注意内存

private Bitmap SaveBitmap(ArrayList arrayList) { if (arrayList==null|arrayList.size()<=0) return null; Bitmap bmOverlay = Bitmap.createBitmap(arrayList.get(0).getWidth(), arrayList.get(0).getHeight(), Bitmap.Config.ARGB_4444); Canvas canvas = new Canvas(bmOverlay); for (ImageView imageView :arrayList){ imageView.setDrawingCacheEnabled(true); canvas.drawBitmap(imageView.getDrawingCache(), 0, 0, null); imageView.setDrawingCacheEnabled(false); } canvas.save(Canvas.ALL_SAVE_FLAG);// 保存 canvas.restore();// 存储 return bmOverlay; }

需要注意

  1. imageView.setDrawingCacheEnabled(true); 允许调用imageView的图片缓冲区 之后必须调用 setDrawingCacheEnabled(false)清空画图缓冲区,否则,下一次用getDrawingCache()方法回去图像时,还是原来的图像 2.由于是多个图片合成需要根据图片的多少、大小具体情况 确定是否需要开启独立线程去进行这个耗时操作o 后续会加入到此项目中 3.由于多图操作,可能造成内存溢出,需要注意回收内存,这个后续会加入到此项目中

About

将多个image中的图片抓取 合成同一张图bitmap

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

Contributors

Languages

AltStyle によって変換されたページ (->オリジナル) /