android将彩图转为黑白_android 将图片转换成黑白图片
先调用android的系统工具,获取图片生成bitmap文件,再使用android中的二值化技术,将图片转化成黑白图片,主界面代码:
package com.example.blackwhite;
import java.io.IOException;
import android.media.ThumbnailUtils;
import android.net.Uri;
import android.os.Bundle;
import android.provider.MediaStore;
import android.app.Activity;
import android.content.ContentResolver;
import android.content.Intent;
import android.database.Cursor;
import android.graphics.Bitmap;
import android.graphics.Bitmap.Config;
import android.util.Log;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;
public class MainActivity extends Activity {
private final String IMAGE_TYPE = "image/*";
private final int IMAGE_CODE = 0; // 这里的IMAGE_CODE是自己任意定义的
private Button addPic = null;
private ImageView imgShow = null;
private TextView imgPath = null;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
init();
}
private void init() {
// TODO Auto-generated method stub
addPic = (Button) findViewById(R.id.btn_add);
imgPath = (TextView) findViewById(R.id.img_path);
imgShow = (ImageView) findViewById(R.id.imgShow);
addPic.setOnClickListener(listener);
}
private OnClickListener listener = new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Button btn = (Button) v;
switch (btn.getId()) {
case R.id.btn_add:
setImage();
break;
}
}
private void setImage() {
// TODO Auto-generated method stub
// 使用intent调用系统提供的相册功能,使用startActivityForResult是为了获取用户选择的图片的地址
Intent getAlbum = new Intent(Intent.ACTION_GET_CONTENT);
getAlbum.setType(IMAGE_TYPE);
startActivityForResult(getAlbum, IMAGE_CODE);
}
};
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// RESULT_OK 是系统自定义得一个常量
if (resultCode != RESULT_OK) {
Log.e("onActivityResult", "返回的resultCode出错");
return;
}
Bitmap bm = null;
// 外界的程序访问ContentProvider所提供数据 可以通过ContentResolver接口
ContentResolver resolver = getContentResolver();
// 判断接收的Activity是不是选择图片的
if (requestCode == IMAGE_CODE) {
try {
// 获得图片的地址Uri
Uri originalUri = data.getData();
//根据图片的URi生成bitmap
bm = MediaStore.Images.Media.getBitmap(resolver, originalUri);
//将图片转化成黑白图片
bm =convertToBlackWhite(bm);
//显得到bitmap图片
imgShow.setImageBitmap(bm);
// 新建一个字符串数组用于存储图片地址数据。
String[] proj = { MediaStore.Images.Media.DATA };
// android系统提供的接口,用于根据uri获取数据
Cursor cursor = managedQuery(originalUri, proj, null, null,
null);
// 获得用户选择图片的索引值
int column_index = cursor
.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
// 将游标移至开头 ,防止引起队列越界
cursor.moveToFirst();
// 根据索引值获取图片路径
String path = cursor.getString(column_index);
imgPath.setText(path);
} catch (IOException e) {
Log.e("getImg", e.toString());
}
}
}
/**
* 将彩色图转换为纯黑白二色
*
* @param 位图
* @return 返回转换好的位图
*/
public static Bitmap convertToBlackWhite(Bitmap bmp) {
int width = bmp.getWidth(); // 获取位图的宽
int height = bmp.getHeight(); // 获取位图的高
int[] pixels = new int[width * height]; // 通过位图的大小创建像素点数组
bmp.getPixels(pixels, 0, width, 0, 0, width, height);
int alpha = 0xFF << 24;
for (int i = 0; i < height; i++) {
for (int j = 0; j < width; j++) {
int grey = pixels[width * i + j];
//分离三原色
int red = ((grey & 0x00FF0000) >> 16);
int green = ((grey & 0x0000FF00) >> 8);
int blue = (grey & 0x000000FF);
//转化成灰度像素
grey = (int) (red * 0.3 + green * 0.59 + blue * 0.11);
grey = alpha | (grey << 16) | (grey << 8) | grey;
pixels[width * i + j] = grey;
}
}
//新建图片
Bitmap newBmp = Bitmap.createBitmap(width, height, Config.RGB_565);
//设置图片数据
newBmp.setPixels(pixels, 0, width, 0, 0, width, height);
Bitmap resizeBmp = ThumbnailUtils.extractThumbnail(newBmp, 380, 460);
return resizeBmp;
}
}
示例代码地址:
http://download.csdn.net/detail/stop_pig/8211315
android将彩图转为黑白_android 将图片转换成黑白图片相关推荐
- 小tip: 使用CSS将图片转换成黑白(灰色、置灰)[转]
小tip: 使用CSS将图片转换成黑白(灰色.置灰) 这篇文章发布于 2012年08月19日,星期日,20:41,归类于 css相关, SVG相关. 阅读 159943 次, 今日 146 次 by ...
- [css] 使用css将图片转换成黑白的效果
[css] 使用css将图片转换成黑白的效果 filter: saturate(0); 个人简介 我是歌谣,欢迎和大家一起交流前后端知识.放弃很容易, 但坚持一定很酷.欢迎大家一起讨论 主目录 与歌谣 ...
- 纯CSS将图片转换成黑白
纯CSS将图片转换成黑白 几行代码就可以实现!效果非常好! 1. 正常效果截图 鼠标悬停前后,分别示下: 2. 非正常效果截图:代码设置的不同,显示的效果不同! 比如:下面的设置导致图片效果不好! 参 ...
- 中如何将方形图片转换成圆形图片_【PS】PS中不可不知的实用技巧!你都掌握了吗?...
今天给大家分享一些在PS中经常用到的实用小技巧,操作简单易上手. 01 拉伸图片人物不变形 在我们在PS里想要拉伸一些图片时,里面的人物往往会跟着一起变形,那么如何改变图片比例的同时,又不影响人物的形 ...
- python制作ico图标_python使用PythonMagic k将jpg图片转换成ico图片的方法
python使用PythonMagic k将jpg图片转换成ico图片的方法 发布时间:2017-06-27 08:00 来源:互联网 当前栏目:网页设计教程 这篇文章主要介绍了python使用Pyt ...
- MATLAB应用实战系列(七十一)-MATLAB实战应用案例:图像处理将灰度图片变成负片彩色图片转换成灰度图片
前言 本文目录 获取图片的信息 将灰度图片变成负片 彩色图片转换成灰度图片 图像噪声的添加 加10次噪声 colorbar的使用 将数据转换为图片 clc clearA是结构体名,用来存储读入的图像数 ...
- pdf图片转换成word图片
pdf图片转换成word图片 随着网络的迅速,纸质的书籍越来越少,但是还是有极少一部分人热衷于发行纸质书籍,这其中不乏一些好书,上次就在朋友家看到一本好书,于是将书名记下.但是在各大新华书店都没有找到 ...
- 【学习笔记】简易的24位BMP图片转换成灰度图片
简易的24位BMP图片转换成灰度图片的C语言实现 使用C语言实现的一个简易的24位BMP图片转换成灰度图片的程序.需要先准备一张24位的BMP图片. 说明 RGB图片转换成灰度图片主要是使用这个公式: ...
- android 将图片转换成黑白图片
先调用android的系统工具,获取图片生成bitmap文件,再使用android中的二值化技术,将图片转化成黑白图片,主界面代码: package com.example.blackwhite;im ...
- 如何把图片转换成渐进式图片
优化图片加载体验,可以把图片改为渐进式图片.加载效果是先模糊,再清晰. 如果把图片转成渐进式图片呢? PS 编辑修改 代码转换 import os from PIL import Image # pi ...
最新文章
- 2021-12-09把文件夹1中的与文件夹2里同名图片删除或者保存至另一个文件夹
- 剑指offer二十二之从上往下打印二叉树
- Web Components系列(七) ——自定义组件的生命周期
- Linux stat
- java证书验证失败_SVN提示https证书验证失败解决办法
- 在线批量将gps经纬度坐标转换为百度经纬度坐标
- C 语言之父丹尼斯·里奇逝世十周年
- MTK平台系统稳定性分析
- IOS开发-苹果开发者中心 提示 edit phone number
- 使用Sbert预训练的TTS模型《Expressive Text-to-Speech using Style Tag》
- 学习遇见狂神说的Java
- 【修真院“善良”系列之十七】请拿好这支时间之箭
- IOS开发之——AFN-网络状态监控(04)
- 淘宝网店应该怎么样去做好宝贝SEO优化?
- Django admin后台美化(极其简单)
- 网易有道难题,铩羽而归。
- LM13丨形态量化-动量周期分析
- 今天北京的天空是湛蓝的
- 世界各国谷歌(Google)网址大全
- 智慧工地大型机械监测北斗定位工业终端解决方案
热门文章
- 三星BESPOKE家电系列海外发布会看点一览,定制化设计成未来家居首选
- python画聚类树状图_如何在scipy/matplotlib中绘制和标注层次聚类树状图
- Bit Miracle Jpegv2.1.1117
- 双代号网络图节点编号原则_网络绘图进行的节点编号时原则
- 【智能制造】歌尔股份打造面向可重构和微服务的可穿戴产品智慧工厂
- C盘空间不足怎么办?教你将其他盘存储空间分给C盘
- android恢复短信中心号码,短信中心号码怎么查 安卓手机查看短信中心号码方法...
- 小马激活软件报错 can not open file:C\OEMSF
- Python模拟用户自动登陆网易126邮箱
- 论文常用图表一:柱状图【MATLAB】