有种场景,我们想将一个图片切割成多个图片。比如我们在开发一个拼图的游戏,就首先要对图片进行切割。

以下是封装好的两个类,可以实现图片的切割。仅供参考和学习。

一个是ImagePiece类,此类保存了一个Bitmap对象和一个标识图片的顺序索引的int变量。

  1. package arui319.blog.csdn.net;
  2. import android.graphics.Bitmap;
  3. public class ImagePiece {
  4. public int index = 0;
  5. public Bitmap bitmap = null;
  6. }

一个是ImageSplitter类,有一个静态方法split,传入的参数是要切割的Bitmap对象,和横向和竖向的切割片数。比如传入的是3、3,则横竖向都切割成3片,最终会将整个图片切割成3X3=9片。

  1. package arui319.blog.csdn.net;
  2. import java.util.ArrayList;
  3. import java.util.List;
  4. import android.graphics.Bitmap;
  5. public class ImageSplitter {
  6. public static List<ImagePiece> split(Bitmap bitmap, int xPiece, int yPiece) {
  7. List<ImagePiece> pieces = new ArrayList<ImagePiece>(xPiece * yPiece);
  8. int width = bitmap.getWidth();
  9. int height = bitmap.getHeight();
  10. int pieceWidth = width / 3;
  11. int pieceHeight = height / 3;
  12. for (int i = 0; i < yPiece; i++) {
  13. for (int j = 0; j < xPiece; j++) {
  14. ImagePiece piece = new ImagePiece();
  15. piece.index = j + i * xPiece;
  16. int xValue = j * pieceWidth;
  17. int yValue = i * pieceHeight;
  18. piece.bitmap = Bitmap.createBitmap(bitmap, xValue, yValue,
  19. pieceWidth, pieceHeight);
  20. pieces.add(piece);
  21. }
  22. }
  23. return pieces;
  24. }
  25. }

这里的切割,主要使用的是Bitmap对象的createBitmap方法,不再做具体描述。

Android中将一个图片切割成多个图片[转]的更多相关文章

  1. Android中将一个图片切割成多个图片

    有种场景,我们想将一个图片切割成多个图片.比如我们在开发一个拼图的游戏,就首先要对图片进行切割. 以下是封装好的两个类,可以实现图片的切割.仅供参考和学习. 一个是ImagePiece类,此类保存了一 ...

  2. unity中把一个图片切割成两个UI图片

    1.在unity3D的Project视图下选中需要更改的图片,将图片的Texture Type更改为Sprite (2D and UI),点击Apply即可.操作如图所示: 2.完成步骤一,点击App ...

  3. 如何将.jpg图片 转换成.eps 格式图片

    在使用latex写作论文的时候,需要插入一些图片,但是往往有些图片不是eps格式的.虽然网上有如何插入jpg格式的图片方法,但是经过我实验后发现都不太管用.最后找到一个比较靠谱的方法,使用latx本身 ...

  4. Android中将布局文件转成bitmap

    在实践中发现,有些需要打印的小票高度小于屏幕的高度,而有些小票内容过多高度高于屏幕高度. 小于屏幕高度的布局文件转成bitmap较为容易,高于屏幕高度的布局文件转成长图bitmap较为复杂. 一.小于 ...

  5. mysql中将一个数据类型转换成另外的数据类型?mysql中cast函数的使用?

    需求描述: 今天在看mysql的函数,提到了通过cast函数将一个数据类型值转换为特定类型的结果值. 在此记录下.将一个表达式转换为特定精度的小数. 操作过程: 1.查看6/4的结果 mysql; + ...

  6. GDI+ 如何将图片绘制成圆形的图片

    大概意思就是不生成新的图片,而是将图片转换为圆形图片. 实现代码如下: private Image CutEllipse(Image img, Rectangle rec, Size size) { ...

  7. FFMpeg笔记(一) 使用FFmpeg将任意格式图片转换成任意格式图片

    void SrcToDest(char* pSrc, char* pDest,unsigned int nSrcWidth, unsigned int nSrcHeight, AVPixelForma ...

  8. GDI+ 怎样将图片绘制成圆形的图片

    大概意思就是不生成新的图片,而是将图片转换为圆形图片. 实现代码例如以下: private Image CutEllipse(Image img, Rectangle rec, Size size) ...

  9. 设置button不同状态下的背景色,即把这个颜色变成图片设置成,背景图片

    - (void)setBackgroundColor:(UIColor *)backgroundColor forState:(UIControlState)state { [self setBack ...

随机推荐

  1. [译]Java 程序员应该了解的 10 个面向对象设计原则

    面向对象设计原则是OOPS(Object-Oriented Programming System,面向对象的程序设计系统)编程的核心,但大多数Java程序员追逐像Singleton.Decorator ...

  2. Linux下Shell命令的输出信息同时显示在屏幕和保存到日志文件中

    #直接覆盖日志文件 ls -l | tee ./t.log #将输出内容附加到日志文件 ls -l | tee -a ./t.log 使用的是tee命令

  3. ExtJS ComboBox同时加载远程和本地数据

    ExtJS ComboBox同时加载远程和本地数据 原文:http://gblog.hbcf.net/index.php/archives/233 ComboBox比较特殊需求,将远程数据和本地数据同 ...

  4. erlang 大神

    http://blog.csdn.net/erlib/article/details/46655905

  5. HBase中的Client如何路由到正确的RegionServer

    在HBase中,大部分的操作都是在RegionServer完成的,Client端想要插入,删除,查询数据都需要先找到相应的RegionServer.什么叫相应的RegionServer?就是管理你要操 ...

  6. pytest文档4-测试用例setup和teardown

    前言 学过unittest的都知道里面用前置和后置setup和teardown非常好用,在每次用例开始前和结束后都去执行一次. 当然还有更高级一点的setupClass和teardownClass,需 ...

  7. CocoaAsyncSocket 套接字

    CocoaAsyncSocket   套接字 https://github.com/robbiehanson/CocoaAsyncSocket Asynchronous socket networki ...

  8. Webharvest网络爬虫应用总结,web-harvest 编写脚本 读取 百度 博客 实例

      Webharvest网络爬虫应用总结 Web-Harvest是一个Java开源Web数据抽取工具.它能够收集指定的Web页面并从这些页面中提取有用的数据.其实现原理是,根据预先定义的配置文件用ht ...

  9. Python学习(四)数据结构 —— dict

    词典类型 dict 字典由键(key)和对应值(value)成对组成.字典也被称作关联数组或哈希表. dict 赋值 dict 整体放在花括号{}中,每个键与值用冒号隔开(:),每对用逗号分割: d ...

  10. mac下python2.x和python3.x的安装方法和升级方法/卸载

    一.首先问个问题,我们为什么要升级python2.x或者python3.x的版本? 一个是低版本会有些bug:或者功能问题,或者安全问题等,另外高版本会引进一些新的功能,也会废弃一些老的功能. 可以通 ...