行走的Coder

俱怀逸兴壮思飞,欲上青天览明月。

导航

2016年9月8日 #

图像滤镜处理算法:灰度、黑白、底片、浮雕

摘要: 1 灰度图片 前文阐述过关于图片的一些基本知识,彩色照片有RGB_8888、RGB_4444、RGB_565这么几种,每一个像素的颜色值由红、绿、蓝三种 值混合而成,红绿蓝的取值分别由很多种,于是像素的颜色值也可以有很多种颜色值,这就是彩色图片的原理,而灰度照片则只有256种颜色,一般的处理方法是 阅读全文

posted @ 2016-09-08 11:24 行走的coder 阅读(6131) 评论(0) 推荐(0) 编辑

JAVA层和JNI层实现Bitmap图镜像功能。

摘要: 写在前面: 经过几天查阅资料,终于完成镜像功能,其中加载位图时需对位图进行处理,主要原因是因为超过8M的位图加载进进程会出现内存溢出,图片处理包含两个部分:缩放处理和质量处理。 我这里选择的是质量处理。Java层代码很简单,网上资料很多,JNI层使用C++实现,传三个参数,即存像素的Int数组,图片 阅读全文

posted @ 2016-09-08 10:22 行走的coder 阅读(717) 评论(0) 推荐(0) 编辑

关于ARGB_8888、ALPHA_8、ARGB_4444、RGB_565的理解

摘要: A:透明度 R:红色 G:绿 B:蓝 Bitmap.Config ARGB_4444:每个像素占四位,即A=4,R=4,G=4,B=4,那么一个像素点占4+4+4+4=16位 Bitmap.Config ARGB_8888:每个像素占四位,即A=8,R=8,G=8,B=8,那么一个像素点占8+8+8 阅读全文

posted @ 2016-09-08 10:13 行走的coder 阅读(650) 评论(0) 推荐(0) 编辑

2016年9月7日 #

镜象变换的源代码

摘要: 镜象变换的源代码如下,因为和平移的那段程序很类似,程序中的注释就简单一些。 /** * 程序名: Mirror.cpp * 功 能: 实现灰度图像的水平镜像和垂直镜像 * 测试图片test.bmp放在工程目录下 */ #include <iostream> #include <windows.h> 阅读全文

posted @ 2016-09-07 11:16 行走的coder 阅读(476) 评论(0) 推荐(0) 编辑

2016年9月5日 #

android 图像处理(黑白,模糊,浮雕,圆角,镜像,底片,油画,灰白,加旧,哈哈镜,放大镜)

摘要: 原图: 一:圆角处理 效果: 代码: [java] view plaincopy public static Bitmap getRoundedCornerBitmap(Bitmap bitmap, float roundPx) { Bitmap output = Bitmap.createBitm 阅读全文

posted @ 2016-09-05 14:04 行走的coder 阅读(722) 评论(0) 推荐(0) 编辑

2016年9月1日 #

android获取项目下的一张图片的绝对路径问题以及解决方法

摘要: 思路如下: 1、把图片放到项目下的assets文件夹下。 2、通过一个方法将该文件夹下面的文件转换成为一个输入流。 3、将输入流转换成为一个字节数组。 4、创建一个输出流,将byte[]写入到sd卡中(此时自己可以对原来的图片重新命名)。 5、通过Environment类中的一些方法就可以获取Str 阅读全文

posted @ 2016-09-01 17:57 行走的coder 阅读(372) 评论(0) 推荐(0) 编辑

fwrite用法

摘要: 一:函数名: fwrite 功 能: 写内容到流中 用 法:fwrite(buffer,size,count,fp); (1)buffer:是一个指针,对fwrite来说,是要输出数据的地址。 (2)size:要写入的字节数; (3)count:要进行写入size字节的数据项的个数; (4)fp:目 阅读全文

posted @ 2016-09-01 14:35 行走的coder 阅读(9049) 评论(0) 推荐(0) 编辑

关于毁灭地球

摘要: 一个优秀的程序员,在接到一个要编写“毁灭地球”的任务的时候,他不会简单的写一个destroyEarth()的方法;而是会写一个destroyPlanet()的方法,将earth作为一个参数传进去。 阅读全文

posted @ 2016-09-01 10:51 行走的coder 阅读(179) 评论(0) 推荐(0) 编辑

memset,memcpy

摘要: memset:是计算机中C/C++语言函数。 解释:将s所指向的某一块内存中的前n个 字节的内容全部设置为ch指定的ASCII值, 第一个值为指定的内存地址,块的大小由第三个参数指定,这个函数通常为新申请的内存做初始化工作, 其返回值为指向s的指针。 函数:void *memset(void *s, 阅读全文

posted @ 2016-09-01 09:37 行走的coder 阅读(466) 评论(0) 推荐(0) 编辑

2016年8月31日 #

P、*P和&P三者的区别

摘要: 假设我们定义一个指针p。 那么会经常使用到三个符号: 1,p; 2,*p; 3,&p; 初学者经常会感到很迷茫,到底这三个符号表示什么? 我们知道,p是一个指针变量的名字,表示此指针变量指向的内存地址,如果使用%p来输出的话,它将是一个16进制数。而*p表示此指针指向的内存地址中存放的内容,一般是一 阅读全文

posted @ 2016-08-31 20:22 行走的coder 阅读(56548) 评论(3) 推荐(4) 编辑