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文本见附件。
页: 1 2 3 4 5 6 7 [8] 9 10 11 12 13 14 15 16 17
查看完整版本: (20200512彩色版Release)_制作图片字典工具的试作