把图片修改为单色图片

实现方式很多,可以用jdk原生api,也可以用框架,如jhlabs。


这里只介绍原生api实现。


代码如下


import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;

import javax.imageio.ImageIO;

public class Test {

	public static void main(String[] args) {

		try {
			BufferedImage src = ImageIO.read(new File("e:\\1.gif")); // 读入源图像
			int width = src.getWidth(); // 源图宽
			int height = src.getHeight(); // 源图高

			Image image = src.getScaledInstance((int) (width), (int) (height),
					Image.SCALE_DEFAULT);

			BufferedImage tag = new BufferedImage((int) (width),
					(int) (height), BufferedImage.TYPE_BYTE_GRAY);
			Graphics2D g = tag.createGraphics();

			g.drawImage(image, 0, 0, null);

			g.dispose();

			OutputStream out = ne
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要将图片转换为单色BMP,可以使用Android的Bitmap类和Canvas类来实现。 步骤如下: 1. 加载原始图片并创建一个Bitmap对象: ``` Bitmap originalBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.original_image); ``` 2. 创建一个与原始图片大小相同的空白Bitmap对象: ``` Bitmap resultBitmap = Bitmap.createBitmap(originalBitmap.getWidth(), originalBitmap.getHeight(), Bitmap.Config.ARGB_8888); ``` 3. 创建一个Canvas对象,将resultBitmap绘制到该Canvas上: ``` Canvas canvas = new Canvas(resultBitmap); ``` 4. 设置画布的颜色模式为单色: ``` canvas.setBitmap(resultBitmap); canvas.drawColor(Color.BLACK); ``` 5. 创建一个Paint对象,设置其颜色为白色: ``` Paint paint = new Paint(); paint.setColor(Color.WHITE); ``` 6. 使用Canvas的drawBitmap方法,将原始图片绘制到resultBitmap上,并应用设置的颜色变换: ``` canvas.drawBitmap(originalBitmap, 0, 0, paint); ``` 7. 最后,将结果保存为单色BMP文件: ``` File file = new File(Environment.getExternalStorageDirectory(), "result.bmp"); FileOutputStream outputStream = new FileOutputStream(file); resultBitmap.compress(Bitmap.CompressFormat.PNG, 100, outputStream); outputStream.flush(); outputStream.close(); ``` 需要注意的是,在使用上述代码时,需要在AndroidManifest.xml文件中添加权限: ``` <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> ``` 以上就是将图片转换为单色BMP的Android代码,应用上述步骤即可实现。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值