vbnet
发表于 2016-5-21 23:38:39
2016021_3更新
>套索功能
修正在词条的下方有很大的空白
线条再细些
凡人也好
发表于 2016-5-22 00:22:14
支持!我有一些不成熟的想法,不知是否可行: 1、(抱歉我可能看得不够仔细,有错请谅解)楼主是不是先选中词条再裁剪图片?是否可以加一种模式,先把图片上所有的词条框选好做上标记,然后在浏览词条时一个一个选。这样可能会提高效率。当然,重要的是为我要说的第二点做准备。 2、众所周知,mdx的词条是没有分级的,但对于汉语词典来说,字以及其下的词之间还是有联系的。为何不在截图时加上分级系统?即在截图时,按住某个键,那么此时截得图就被记录为主图的一个分图(生成个文件,专门记录图片间分级关系),这样在处理文本时,可方便调用(如:①在字的词条下生成词的超链接。②高度模板化,做一个引用模板,在字的词条下也调用对应的词,不过通过代码实现折叠现实,就像oald9那样。③系统性存好分级关系,让制作者自己发挥)。不仅汉语词典,在截图时把每个大的分级都标上号,便可实现安原书顺序浏览词条了(加超链接实现,或最后做完后安编号顺序排列源文件,用最新版mdxbuild生成)。 3、待续…… 最后还是感谢楼主的付出。待工具完善后,用mdict看图片版词典就太完美了,没有这工具制作都是大问题! 我表达的可能有些混乱了,实现不了也无伤大雅,毕竟楼主把工具做成现在这样已经是非常大的福利了,我们这些享受奉献的没有权利要求奉献者按我们的意思来!
chigre3
发表于 2016-5-22 00:52:34
解压ZIP:
TEST.html 可以用浏览器查看一下效果
TEST.MDX 只能用 GoldenDict 查看不完全效果,即“红色标识”的显隐性不成功,有谁懂点JS的帮忙给出个主意!
不然图片下方的词条,因为版面高度关系会因为没有“标识提示”而变得难找了!!!
chigre3
发表于 2016-5-22 00:53:49
vbnet 发表于 2016-5-21 11:39
单纯给出坐标
比如
offering#20,400
我回复啦,是个测试文件,需要用GoldenDict加载MDX,HTML浏览器里倒是可以显隐“红色位置标识”
chigre3
发表于 2016-5-22 00:58:34
纵坐标百分比 = 取两位小数 ( 词条纵坐标 / 图片宽度 * 100 )
margin-top = 纵坐标百分比%
------------------------
注意,不是除以图片高度,是除以图片宽度!!!!
chigre3
发表于 2016-5-22 01:24:02
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from Tkinter import *
from tkFileDialog import askopenfilename
from PIL import Image, ImageTk
if __name__ == "__main__":
root = Tk()
#setting up a tkinter canvas with scrollbars
frame = Frame(root, bd=2, relief=SUNKEN)
frame.grid_rowconfigure(0, weight=1)
frame.grid_columnconfigure(0, weight=1)
xscroll = Scrollbar(frame, orient=HORIZONTAL)
xscroll.grid(row=1, column=0, sticky=E+W)
yscroll = Scrollbar(frame)
yscroll.grid(row=0, column=1, sticky=N+S)
canvas = Canvas(frame, bd=0, xscrollcommand=xscroll.set, yscrollcommand=yscroll.set)
canvas.grid(row=0, column=0, sticky=N+S+E+W)
xscroll.config(command=canvas.xview)
yscroll.config(command=canvas.yview)
frame.pack(fill=BOTH,expand=1)
#adding the image
File = askopenfilename(parent=root, initialdir="C:/Users/dell/Desktop/意汉词典/_ok",title='Choose an image.')
img = ImageTk.PhotoImage(Image.open(File))
canvas.create_image(0,0,image=img,anchor="nw")
canvas.config(scrollregion=canvas.bbox(ALL))
#function to be called when mouse is clicked
def printcoords(event):
#outputting x and y coords to console
canvas = event.widget
x = canvas.canvasx(event.x)
y = canvas.canvasy(event.y)
oval = canvas.create_oval(x-8, y-8, x+8, y+8, fill="red")
print x,y
f = open('_coords.txt','a')
f.write('X: %s\tY: %s\n' % (x,y))
f.close()
#mouseclick event
canvas.bind("<Button 1>",printcoords)
root.mainloop()
来源处:
http://stackoverflow.com/questions/5501192/how-to-display-picture-and-get-mouse-click-coordinate-on-it
vbnet
发表于 2016-5-22 08:09:10
chigre3 发表于 2016-5-22 00:52
解压ZIP:
TEST.html 可以用浏览器查看一下效果
基本了解
css position margin-top
vbnet
发表于 2016-5-22 08:18:45
本帖最后由 vbnet 于 2016-5-22 08:51 编辑
chigre3 发表于 2016-5-22 00:58
纵坐标百分比 = 取两位小数 ( 词条纵坐标 / 图片宽度 * 100 )
margin-top = 纵坐标百分比%
------------- ...
3200x5000
y=2500
margin-top=2500/3200*100=78.12%
不知道如何理解这78.12%?
margin-left的算法?
lwangls
发表于 2016-5-22 09:28:09
词典有固定的两栏或三栏,一般扫描的版本定位足够准确
比如两栏的词典:
1)输入分栏的三条竖线位置,估计只有个别页面需要调整
2)只需手工画出词与词之间的分割横线。
再自动化一点, 只需鼠标在每两个词之间点击一下,自动画横线,与固定的分栏竖线构成矩形
3)每章划分词条完毕,一次性切割图形
fedor
发表于 2016-5-22 10:05:55
本帖最后由 fedor 于 2016-5-25 13:00 编辑
vbnet 发表于 2016-5-21 23:02
>固定框无法向图片下方移动。
固定框无法移动的情况是:打开的图片上下高度较长时,也就是当前电脑屏幕不是显示整个页面时,看下面的页面需要按右侧的滚动条向下滚动,滚动后显示出的这部分页面,固定框是移动不过来的。
vbnet
发表于 2016-5-22 13:19:46
fedor 发表于 2016-5-22 10:05
固定框无法移动的情况是:打开的图片上下高度较长时,也就是当前电脑屏幕不是显示整个页面时,看下面的页 ...
改好了,等更新
vbnet
发表于 2016-5-22 13:41:32
2016022更新
>固定框功能
修正卷轴下拉后,不能往下拖动的情况
vbnet
发表于 2016-5-22 14:52:39
本帖最后由 vbnet 于 2016-5-22 17:28 编辑
chigre3 发表于 2016-5-21 07:29
vbnet, 我偷个懒,就只要词条所在的XY坐标,这样查询单词,点击一下,自动滚动到所在的垂直位置。
这样方式如何
开始点左方词头----->点缩图中该词头的位置(x,y)--->取得原图中该词头的位置(x,y)-->写入词头列表(高亮)的右方
点缩图中该词头的位置(x,y)--->左方词头自动往下一格高亮
往后只点图片
还是加入公式算出%?
如果我只单纯想查词时,图片中(x,y)直接拉到(0,0)显示,css,html的写法?
如附件
fedor
发表于 2016-5-22 19:38:27
vbnet 发表于 2016-5-22 13:41
2016022更新
>固定框功能
完全正常了,效率好高,大赞赞赞赞!!!
期待下一个功能能够开发出来,也就是同时选定多个词条,定位一个截图。
chigre3
发表于 2016-5-23 02:42:55
vbnet 发表于 2016-5-22 14:52
这样方式如何
开始点左方词头----->点缩图中该词头的位置(x,y)--->取得原图中该词头的位置(x,y)--> ...
整页面的词条,点击序号跳到当前页所在垂直位置,点击单词链接该单词,方便查询其他词库
vbnet
发表于 2016-5-23 15:27:36
fedor 发表于 2016-5-22 19:38
完全正常了,效率好高,大赞赞赞赞!!!
期待下一个功能能够开发出来,也就是同时选定多个词条,定位一 ...
想法
a,b,c,d指向同一张图
a词存图,设a为跳转目标,b,c,d指向a
------产生对照表---------------
b#a
c#a
d#a
--------------------------------------------------------
寻找:
(^.*)#(.*$)
取代为:
\1\r\n@@@LINK=\2\r\n</>
-------------------------------
b
@@@LINK=a
</>
c
@@@LINK=a
</>
d
@@@LINK=a
</>
chigre3
发表于 2016-5-23 18:31:48
vbnet 发表于 2016-5-22 14:52
这样方式如何
开始点左方词头----->点缩图中该词头的位置(x,y)--->取得原图中该词头的位置(x,y)--> ...
这个可以测试吗?
chigre3
发表于 2016-5-23 18:58:33
vbnet 发表于 2016-5-22 14:52
这样方式如何
开始点左方词头----->点缩图中该词头的位置(x,y)--->取得原图中该词头的位置(x,y)--> ...
默认的情况下就是你说的这样。
之前的测试文件还在吧?
输入YHCD_001,你会看到完整的该页词头索引,按照左右两列区分开的。
单击这儿的数字,会自动跳到垂直 位置
单击这儿的单词,查询该单词
chigre3
发表于 2016-5-23 19:00:25
vbnet 发表于 2016-5-22 14:52
这样方式如何
开始点左方词头----->点缩图中该词头的位置(x,y)--->取得原图中该词头的位置(x,y)--> ...
最初加载的words列表如果也有极少的缺词可以手工加入吗?
vbnet
发表于 2016-5-23 19:11:41
chigre3 发表于 2016-5-23 18:31
这个可以测试吗?
用法如上所述
vbnet
发表于 2016-5-23 19:14:34
chigre3 发表于 2016-5-23 19:00
最初加载的words列表如果也有极少的缺词可以手工加入吗?
要等更新
用插入的方式
chigre3
发表于 2016-5-23 19:16:54
vbnet 发表于 2016-5-23 19:11
用法如上所述
万分感谢!这样超好用!
vbnet
发表于 2016-5-23 19:19:11
chigre3 发表于 2016-5-23 18:58
默认的情况下就是你说的这样。
之前的测试文件还在吧?
输入YHCD_001,你会看到完整的该页词头索引,按 ...
等你实际做几页,看看效果如何
chigre3
发表于 2016-5-23 19:23:09
vbnet 发表于 2016-5-23 19:11
用法如上所述
打开的图片文件名是否可以写入?
这样方便后期编辑。
----------
fedor
发表于 2016-5-23 19:27:44
vbnet 发表于 2016-5-23 15:27
想法
a,b,c,d指向同一张图
a词存图,设a为跳转目标,b,c,d指向a
想法好!集成到程序自动完成就超级棒了。
不过自己手工试做了一个图片,三个词条的,但是第二个和第三个词条不显示图片啊,不知问题在哪里。图片和txt文本见附件。