my_mosaic
//功能:输入想要打马赛克的坐标点,宽,高以及每个边需要划分的块数进行打马赛克
//只能处理位图,根据不同色深定义depth即可
//还没写从文件头读取图片分辨率
#include<unistd.h>
#include<stdio.h>
#include<stdlib.h>
#include<sys/types.h>
#include<sys/stat.h>
#include<fcntl.h>
#define depth 4
static int mask(char(*pic)[600*depth],
const int x,const int y,const int w,const int h){
int i=0,j=0,q=0;
//存储色块的颜色
char color_std[depth];
for(q=0;q<depth;q++){
color_std[q]=pic[y][depth*x+q];
}
for(j=y;j<y+h;j++){
for(i=depth*x;i<depth*x+w*depth;i+=depth){
for(q=0;q<depth;q++){
pic[j][i+q]=color_std[q];
}
}
}
}
int reg(char* filename,const int x,\
const int y,const int w,const int h,const int num){
int fd=open(filename,O_RDWR);
lseek(fd,54,SEEK_SET);
int i=0,j=0,q=0,p=0;
char pic[450][600*depth];
read(fd,pic,sizeof(pic));
//计算需要画图的点和区域
for(j=y;j<y+h-1;j+=h/num){
for(i=x;i<x+w-1;i+=(w/num)) {
mask(pic,i,j,w/num,h/num);
}
}
lseek(fd,54,SEEK_SET);
write(fd,pic,sizeof(pic));
close(fd);
}
int main(int argc, const char *argv[])
{
int x=atoi(argv[1]);
int y=atoi(argv[2]);
int w=atoi(argv[3]);
int h=atoi(argv[4]);
int n=atoi(argv[5]);
reg("./image",/*W,H,*/x,y,w,h,n);
return 0;
}
my_mosaic的更多相关文章
随机推荐
- 项目总结笔记系列 Autonomy IDOL Server KT Session1
在说上面这个图之前,先说一下背景知识. Autonomy地址: http://www.autonomy.com.cn http://www.autonomy.com.cn/content/home/i ...
- 解决WindowsServer 2008 R2 未注册版一个小时自动强制关机
仅用来学习交流,请大家购买正版,尊重正版版权. 安装了win2008R2,试了很多激活方法,终于激活后,不知道什么原因,过了一段时间后,每隔一段时间就自动关机,查了一下,发现是 wlms.exe在作祟 ...
- excel查看VBA代码快捷键
公司现在的很多自动化代码生成使用excel VBA,本来这事跟自己一点关系打不着,不过计划年底切换中间件,这得导致部分代码结构调整,自己还得去调整测试,老忘掉这快捷键,特记录下,Alt + F11
- mysql登录时闪退的问题
之前mysql用着好着,可是今天在启动mysql后输入密码出现了闪退,在任务管理器中发现mysql服务没有启动,当手动启动时提示拒绝访问.在网上查找原因发现问题所在. 问题原因:mysql服务没有安装 ...
- jQuery8种不同的瀑布流懒加载loading效果
优化图片加载插件jQuery8种不同的瀑布流懒加载loading效果 在线预览 下载地址 实例代码 <ul class="grid effect-1" id="g ...
- jQuery Portamento 滑动定位
版本: jQuery v1.3.2+ jQuery Portamento v1.1.1 注意事项: 在不支持position:fixed的浏览器里效果不是很好(例如 IE6.iOS4),可以在参数中设 ...
- Ajax+PHP+MySQL 登陆示例
PHP是一门很好的语言,可以很方便的开发web应用程序,下面介绍一下PHP如何通过AJAX方式实现登录功能: 1 login.php 登录界面中,javascript脚本用ajax方式异步请求dolo ...
- Bootstrap源码分析之dropdown
源码分析: Dropdowns.scss:下拉框模块 Javascripts/bootstrap/dropdown.js:实现下拉框响应 实现功能及原理: 下拉选项卡,默认不能实现显示选中项的功能 原 ...
- 分享22款响应式的 jQuery 图片滑块插件
响应式(Responsive)设计的目标是要让产品界面能够响应用户的行为,根据不同终端设备自动调整尺寸,带给用户良好的使用体验.这篇文章收集了22款优秀的响应式 jQuery 幻灯片插件,它们能够帮助 ...
- C++11新特性 lambda表达式
C++11 添加了了一个名为lambda表达式的功能,可以用于添加匿名函数 语法: [capture_block](parameter) mutable exception_specification ...