9.7android注解支持,mysql优化,图片搜索
来源:互联网 发布:喜剧动漫 知乎 编辑:程序博客网 时间:2024/06/08 23:55
http://www.codeceo.com/article/android-support-annotations.html
Android Support Annotations注解类
可不可以空注解
@NONNULL / @NULLABLE
限定资源
@STRINGRES / @DRAWABLERES等
编译不混淆
@KEEP
http://www.codeceo.com/article/mysql-performance-10-tips.html
优化重建数据库CREATE TABLE mydb.mytablenew LIKE mydb.mytable;INSERT INTO mydb.mytablenew SELECT * FROM mydb.mytable;ALTER TABLE mydb.mytable RENAME mydb.mytablezap;ALTER TABLE mydb.mytablenew RENAME mydb.mytable;DROP TABLE mydb.mytablezap;
数据预热
echo “select username,password from users;” > /var/lib/mysql/upcache.sql
使用内存磁盘:
mkdir -p /mnt/ramdisksudo mount -t tmpfs -o size=4000M tmpfs /mnt/ramdisk/mv /var/lib/mysql /mnt/ramdisk/mysqlln -s /tmp/ramdisk/mysql /var/lib/mysqlchown mysql:mysql mysql
显示图片搜索:
http://www.codeceo.com/article/like-image-1.html
原理
第一步,缩小尺寸。
将图片缩小到8×8的尺寸,总共64个像素。这一步的作用是去除图片的细节,只保留结构、明暗等基本信息,摒弃不同尺寸、比例带来的图片差异。
第二步,简化色彩。
将缩小后的图片,转为64级灰度。也就是说,所有像素点总共只有64种颜色。
第三步,计算平均值。
计算所有64个像素的灰度平均值。
第四步,比较像素的灰度。
将每个像素的灰度,与平均值进行比较。大于或等于平均值,记为1;小于平均值,记为0。
第五步,计算哈希值。
将上一步的比较结果,组合在一起,就构成了一个64位的整数,这就是这张图片的指纹。组合的次序并不重要,只要保证所有图片都采用同样次序就行了。
= = 8f373714acfcf4d0
代码:
#!/usr/bin/pythonimport globimport osimport sysfrom PIL import ImageEXTS = 'jpg', 'jpeg', 'JPG', 'JPEG', 'gif', 'GIF', 'png', 'PNG'def avhash(im): if not isinstance(im, Image.Image): im = Image.open(im) im = im.resize((8, 8), Image.ANTIALIAS).convert('L') avg = reduce(lambda x, y: x + y, im.getdata()) / 64. return reduce(lambda x, (y, z): x | (z << y), enumerate(map(lambda i: 0 if i < avg else 1, im.getdata())), 0)def hamming(h1, h2): h, d = 0, h1 ^ h2 while d: h += 1 d &= d - 1 return hif __name__ == '__main__': if len(sys.argv) <= 1 or len(sys.argv) > 3: print "Usage: %s image.jpg [dir]" % sys.argv[0] else: im, wd = sys.argv[1], '.' if len(sys.argv) < 3 else sys.argv[2] h = avhash(im) os.chdir(wd) images = [] for ext in EXTS: images.extend(glob.glob('*.%s' % ext)) seq = [] prog = int(len(images) > 50 and sys.stdout.isatty()) for f in images: seq.append((f, hamming(avhash(f), h))) if prog: perc = 100. * prog / len(images) x = int(2 * perc / 5) print '\rCalculating... [' + '#' * x + ' ' * (40 - x) + ']', print '%.2f%%' % perc, '(%d/%d)' % (prog, len(images)), sys.stdout.flush() prog += 1 if prog: print for f, ham in sorted(seq, key=lambda i: i[1]): print "%d\t%s" % (ham, f)
0 0
- 9.7android注解支持,mysql优化,图片搜索
- MySQL 全文搜索支持
- MySQL 全文搜索支持
- MySQL模糊搜索优化
- Android注解支持(Support Annotations)
- Android注解支持(Support Annotations)
- Android注解支持(Support Annotations)
- [转载]MySQL 全文搜索中文支持
- Android优化之图片优化
- android 拼音搜索联系人分析与实现(支持多音字,支持T9搜索,支持Qwerty搜索)
- 网站图片怎么优化搜索排名
- Seo搜索如何优化百度图片排名
- Android注解支持(Support Annotations)
- Android注解支持(Support Annotations)详解
- Android注解支持(Support Annotations)
- android图片内存优化
- Android图片内存优化
- android图片内存优化
- HDU 4812 D Tree(树分治)
- Shell基础之-awk命令
- css 选择器如何选择
- 阿里腾讯2016校招在线笔试有感
- someone
- 9.7android注解支持,mysql优化,图片搜索
- RSA算法原理(二)
- poj 1651 Multiplication Puzzle(区间DP)
- CCLayer解析
- 毕业
- android用setcontentview来加载一个布局文件的本质原因
- Shell基础之-sed命令
- 战胜自我
- AndroidStudio Gradle:Resolvedependencies':app:_debugCompile' 问题解决纪录