摘要: 这几天接了个任务,把JPEG转为BMP。我在网上搜了很多代码,最后决定自己来写,写到后面已经变成大段借用其他人的代码了。 下面来说说这里面的几个难点,文后会附上代码。 1 IDCT, 反离散余弦变换,这个找了很多现成的代码,最后使用了stb_image的代码拷过来改了下。 2 resample,网上流行很广的文章里一笔带过,据那篇文章弄出来发现锯齿严重,和原图有差别,最后拷stb_image的代码来改的。 3 图片转为RGB和色调有点差别,后来交换了下Cr,Cb就正常了,我也不知道咋搞的。我觉得这点代码还是挺有意思的,huffman, RLE, 字节流的处理等等.另贴一个参考的文章http:. 阅读全文
posted @ 2013-07-02 18:31 fenix124 阅读(712) 评论(2) 推荐(0) 编辑
摘要: 这几天微博上面有条信息,说某数学家花了几个月发现了个数独的问题,只有一种解法,反正就是很难解。我把我几年前写的解数独的程序来跑了下,一瞬间就出来。现在把代码贴出来,顺便说下思路。这个其实随便一个搞了ACM的很快就可以写出来。#include "stdio.h"int R[9];int C[9];int G[9];int M[9][9];bool dfs(int x,int y){ if(x == 9) { for (int i = 0; i < 9; i++) { for(int j = 0; j < 9; j++) ... 阅读全文
posted @ 2013-05-27 23:10 fenix124 阅读(1282) 评论(0) 推荐(0) 编辑
摘要: C++编程里面有几个地方非常麻烦,字符串,内存管理,以及错误处理。 C++里有大量的代码都是处理错误,每调用一次Win32 API,每调用一次COM操作,甚至连调用一次new都要判断。(我个人从来都不判断new是否返回空指针,不知道这对不对)因此有人说写C++代码时,50%的代码在处理错误判断。既然C++处理异常的情况这么多,那么总结出一套优秀的处理错误的方式是很必要的。我们先来看传统处理,沿用C语言式的处理方式,每次操作检查一下返回值。如果操作失败,则释放资源,一层层的检查,直到最后回到调用函数。如果这样的话,判断返回值的地方同调用层次成正比,代码显得很臃肿。我之前就是这么做的,并且没有使. 阅读全文
posted @ 2013-05-27 22:59 fenix124 阅读(825) 评论(0) 推荐(0) 编辑
摘要: 我到公司后接到的是之前的一个客户端的项目,在老版本基础上修改了个简单的界面引擎,最近把旧的业务也迁移了过来。旧的项目配置模块使用的是SQLite,经理发现那个升级不方便,让我把配置修改成普通配置文件的方式。 把程序里面用到配置文件的地方整理了下,分为两类:1 参数类,简单来说类似(Key, Value)2 列表类,同数据库一样的多个域的一条条记录 最先想到的是使用XML来做配置文件。第一类类似<Config><Param key1=value1 key2=value2......./> </Config>第二类的类似<Config><Ite 阅读全文
posted @ 2013-05-15 22:17 fenix124 阅读(378) 评论(0) 推荐(0) 编辑