计算背景图片的灰度值,设置文字的颜色

废话不多说,直接上代码

/**
	 * 计算图片颜色度
	 * @param context
	 * @param wpSrc 图片
	 * @param scale 缩小参数
	 * @param hScale 高度比
	 * @return false 默认白色,  true为显示黑色
	 */
	public static boolean calculateWallpaperGray(Context context, final Bitmap wpSrc, int scale, int hScale){
		try {
			if (wpSrc == null || wpSrc.isRecycled()) {
				return false;
			}
			
			if(scale<1){
				scale = 1;
			}
			if(hScale<1){
				hScale = 1;
			}
			
			Matrix matrix = new Matrix(); 
			matrix.postScale(1.0f/scale,1.0f/scale); //长和宽放大缩小的比例
			Bitmap wp = Bitmap.createBitmap(wpSrc,0,0,wpSrc.getWidth(),wpSrc.getHeight(),matrix,true);


			int sgray[] = new int[256];
			for (int i = 0; i < sgray.length; i++) {
				sgray[i] = 0;
			}


			double sum = 0;


			int width = wp.getWidth();
			int height = wp.getHeight()/hScale;
			for (int i = 0; i < width; i++) {
				for (int j = 0; j < height; j++) {
					int rgb = wp.getPixel(i, j);
					/*
					 * 应为使用getRGB(i,j)获取的该点的颜色值是ARGB,
					 * 而在实际应用中使用的是RGB,所以需要将ARGB转化成RGB, 即bufImg.getRGB(i, j) &
					 * 0xFFFFFF。
					 */
					int r = (rgb & 0xff0000) >> 16;
					int g = (rgb & 0xff00) >> 8;
					int b = (rgb & 0xff);
					int gray = (int) (r + g + b); // 计算灰度值
					sgray[gray]++;
					sum += gray;
				}
			}		
			double averageGray = sum / width / height;
			return (averageGray >= 245)?true:false;
		} catch (Exception e) {
			e.printStackTrace();
		}
		return false;
	}



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值