本發(fā)明涉及計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)領(lǐng)域,特別涉及一種結(jié)構(gòu)式圖片的生成方法以及結(jié)構(gòu)式編輯器。
背景技術(shù):
結(jié)構(gòu)式編輯器,是化工、醫(yī)藥等企業(yè)的較為常用的畫圖工具。
例如,現(xiàn)有公開(kāi)號(hào)為CN105677631A的專利申請(qǐng)文獻(xiàn)公開(kāi)了一種結(jié)構(gòu)式編輯器,包括保存模塊,所述保存模塊用于將所述結(jié)構(gòu)式編輯器內(nèi)編輯好的單個(gè)化學(xué)分子結(jié)構(gòu)式保存為通用文本格式,并使用json字符串保存化學(xué)反應(yīng)箭頭的信息和化學(xué)反應(yīng)文本的信息,將整個(gè)化學(xué)反應(yīng)式以自定義int格式進(jìn)行保存;用于保存化學(xué)反應(yīng)箭頭的信息的json字符串包含反應(yīng)箭頭的初始坐標(biāo)、結(jié)束坐標(biāo)及長(zhǎng)度信息;用于保存化學(xué)反應(yīng)文本的信息的json字符串包括文本坐標(biāo)、文本內(nèi)容、文本字符占的寬度、文本字符占的高度。
上述專利申請(qǐng)文獻(xiàn)提供的結(jié)構(gòu)式編輯器,雖然解決了chemdraw畫圖軟件安裝包龐大,運(yùn)行時(shí)占用的內(nèi)存很大,不利于電腦的快速運(yùn)行等諸多問(wèn)題。但是,該結(jié)構(gòu)式編輯器或者其他一些用戶量較大的結(jié)構(gòu)式編輯器,仍然存在改進(jìn)空間。例如,上述的這些結(jié)構(gòu)編輯器,可以將整個(gè)畫布生成圖片,供用戶使用。但用戶在使用過(guò)程中,需要先對(duì)整個(gè)畫布中空白部分進(jìn)行裁剪,得到結(jié)構(gòu)式圖片。
技術(shù)實(shí)現(xiàn)要素:
為解決的技術(shù)問(wèn)題,本發(fā)明提出一種結(jié)構(gòu)式圖片的生成方法以及結(jié)構(gòu)式編輯器,能自動(dòng)裁剪整個(gè)畫布中空白部分,得到結(jié)構(gòu)式圖片。
本發(fā)明提供了一種結(jié)構(gòu)式圖片的生成方法,包括以下步驟:
確認(rèn)結(jié)構(gòu)式步驟,響應(yīng)于用戶的操作,確認(rèn)待處理的結(jié)構(gòu)式;
生成離線canvas步驟,依據(jù)待處理的所述結(jié)構(gòu)式生成相應(yīng)的離線canvas;
生成圖片步驟,包括獲取離線canvas的坐標(biāo)信息和尺寸信息的步驟和依據(jù)所述離線canvas的坐標(biāo)信息和尺寸信息生成相應(yīng)的圖片的步驟。
作為一種可實(shí)施方式,所述確認(rèn)結(jié)構(gòu)式步驟包括以下步驟:
框選步驟,響應(yīng)于用戶的框選操作,以建立選區(qū);
確認(rèn)步驟,確認(rèn)畫布上的結(jié)構(gòu)式是否全部落在或者部分落在所述選區(qū)內(nèi),若是,則將落在所述選區(qū)內(nèi)的結(jié)構(gòu)式確認(rèn)為待處理的結(jié)構(gòu)式。
作為一種可實(shí)施方式,所述確認(rèn)結(jié)構(gòu)式步驟包括以下步驟:
全選步驟,響應(yīng)于用戶的一鍵操作,將畫布上的結(jié)構(gòu)式確認(rèn)為待處理的結(jié)構(gòu)式。
作為一種可實(shí)施方式,在所述生成離線canvas步驟中,遍歷選區(qū)選中或者部分選中的結(jié)構(gòu)式,生成所述坐標(biāo)信息和尺寸信息,作為對(duì)象存儲(chǔ),并生成相應(yīng)的離線c anvas。
作為一種可實(shí)施方式,在生成圖片步驟中,包括獲取離線canvas的坐標(biāo)信息和尺寸信息的步驟和調(diào)用畫布中繪制圖片的方法,并在新建的畫布上將所述離線canvas的坐標(biāo)信息和尺寸信息導(dǎo)入,以生成相應(yīng)的圖片的步驟。
作為一種可實(shí)施方式,所述圖片格式為base64。
相應(yīng)地,本發(fā)明還提供了一種結(jié)構(gòu)式編輯器,包括確認(rèn)結(jié)構(gòu)式單元、離線canvas生成單元和圖片生成單元;
所述確認(rèn)結(jié)構(gòu)式單元用于確認(rèn)結(jié)構(gòu)式步驟,響應(yīng)于用戶的操作,確認(rèn)待處理的結(jié)構(gòu)式;
所述離線canvas生成單元用于生成離線canvas步驟,依據(jù)待處理的所述結(jié)構(gòu)式生成相應(yīng)的離線canvas;
所述圖片生成單元用于獲取離線canvas的坐標(biāo)信息和尺寸信息的步驟和依據(jù)所述離線canvas的坐標(biāo)信息和尺寸信息生成相應(yīng)的圖片。
作為一種可實(shí)施方式,所述圖片格式為base64。
本發(fā)明相比于現(xiàn)有技術(shù)的有益效果在于:
本發(fā)明提供的結(jié)構(gòu)式圖片的生成方法以及結(jié)構(gòu)式編輯器,可以將選中畫布上的結(jié)構(gòu)式,轉(zhuǎn)換生成相應(yīng)的離線canvas,再獲取離線canvas的坐標(biāo)信息和尺寸信息,并依據(jù)該坐標(biāo)信息和尺寸信息轉(zhuǎn)換生成相應(yīng)的圖片;從而自動(dòng)裁剪整個(gè)畫布中空白部分,得到結(jié)構(gòu)式圖片。
附圖說(shuō)明
圖1為本發(fā)明的結(jié)構(gòu)式圖片的生成方法流程圖;
圖2為本發(fā)明實(shí)施例中離線canvas的示例圖;
圖3為本發(fā)明的另外一個(gè)實(shí)施例提供的結(jié)構(gòu)式圖片的生成方法流程圖。
具體實(shí)施方式
以下結(jié)合附圖,對(duì)本發(fā)明上述的和另外的技術(shù)特征和優(yōu)點(diǎn)進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明的部分實(shí)施例,而不是全部實(shí)施例。
參照?qǐng)D1,本發(fā)明提供了一種結(jié)構(gòu)式圖片的生成方法,包括步驟S100、步驟S200、步驟S300以及步驟S400。
在步驟S100中,利用鼠標(biāo)的光標(biāo)在畫布上的拖拽建立選區(qū),將鼠標(biāo)的左鍵按下,以鼠標(biāo)的左鍵被按下時(shí)的坐標(biāo)為起始坐標(biāo),在鼠標(biāo)的左鍵被按下的同時(shí)移動(dòng)鼠標(biāo),拖拽鼠標(biāo)的光標(biāo)在畫布上移動(dòng)一定的距離,以鼠標(biāo)的左鍵被松開(kāi)時(shí)的坐標(biāo)為終止坐標(biāo),這樣,可在畫布上建立從起始坐標(biāo)至終止坐標(biāo)的矩形框選區(qū)。
在步驟S200中,若結(jié)構(gòu)式的全部落在選區(qū)內(nèi),則選中畫布上的結(jié)構(gòu)式;若結(jié)構(gòu)式的部分落在選區(qū)內(nèi),則部分選中畫布上的結(jié)構(gòu)式;其中,結(jié)構(gòu)式的部分落在選區(qū)內(nèi)是指至少兩個(gè)結(jié)構(gòu)式的坐標(biāo)點(diǎn)落在選區(qū)內(nèi)。
例如該結(jié)構(gòu)式為環(huán)己烷,具有正六邊形的圖形。如果環(huán)己烷的六條邊都落在選區(qū)內(nèi),可以視為結(jié)構(gòu)式的全部落在選區(qū)內(nèi),選中環(huán)己烷,選中的表現(xiàn)形式為環(huán)己烷的六條邊的顏色改變。如果環(huán)己烷只有一條邊或者半條邊落在選區(qū)內(nèi),可以視為結(jié)構(gòu)式的部分落在選區(qū)內(nèi),選中這條邊,選中的表現(xiàn)形式為環(huán)己烷的六條邊的顏色改變。如果環(huán)己烷只有一條邊上的一個(gè)點(diǎn)落在選區(qū)內(nèi),可以視為結(jié)構(gòu)式的未落在選區(qū)內(nèi),不選中結(jié)構(gòu)式。這樣,通過(guò)上述算法可以減少框選誤操作,尤其當(dāng)結(jié)構(gòu)式的排布比較緊湊時(shí)。
在步驟S300中,遍歷選區(qū)選中或者部分選中的結(jié)構(gòu)式,生成坐標(biāo)信息和尺寸信息,作為對(duì)象存儲(chǔ),并生成相應(yīng)的離線canvas。
還是以環(huán)己烷為例,坐標(biāo)信息指的是環(huán)己烷的六條邊的各個(gè)點(diǎn)的坐標(biāo)集合,尺寸信息指的是環(huán)己烷的寬度信息和高度信息;在遍歷過(guò)程中,生成坐標(biāo)信息和尺寸信息并將其作為對(duì)象存儲(chǔ),然后生成相應(yīng)的離線canvas。
如圖2所示,在離線canvas中,具有一個(gè)略大于環(huán)己烷的寬度和高度的方框,環(huán)己烷在方框內(nèi)居中;在方框的下方中間有一個(gè)搜索按鈕,點(diǎn)擊搜索按鈕,可以搜索數(shù)據(jù)庫(kù)中有關(guān)環(huán)己烷的信息;在方框的下方右邊有一個(gè)轉(zhuǎn)換按鈕,點(diǎn)擊轉(zhuǎn)換按鈕,可以開(kāi)始執(zhí)行將離線canvas轉(zhuǎn)換生成圖片的步驟;在方框的上方中間有一個(gè)操作點(diǎn),該操作點(diǎn)的功能類似于word、PPT中文本框上方的操作點(diǎn),點(diǎn)中該操作點(diǎn)拖拽可以控制環(huán)己烷在方框內(nèi)旋轉(zhuǎn)一定角度。
在步驟S400中,所有的步驟在點(diǎn)擊轉(zhuǎn)換按鈕后開(kāi)始執(zhí)行。首先,從對(duì)象中獲取坐標(biāo)信息和尺寸信息;然后,調(diào)用畫布中繪制圖片的方法函數(shù),并在新建的畫布上將對(duì)象的坐標(biāo)信息和尺寸信息導(dǎo)入,生成相應(yīng)的圖片。這個(gè)過(guò)程相當(dāng)于根據(jù)對(duì)象的坐標(biāo)信息和尺寸信息再畫一次結(jié)構(gòu)式。不同之處在于,由于對(duì)象的坐標(biāo)信息和尺寸信息預(yù)先就存在,因此,畫出來(lái)的結(jié)構(gòu)式?jīng)]有其他的坐標(biāo)信息,即沒(méi)有所謂的空白部分。其中,圖片格式為base64。
除此之外,本發(fā)明還提供了另一種結(jié)構(gòu)式圖片的生成方法,如圖3所示,其包括步驟S110、步驟S210以及步驟S310。其中步驟S210和步驟S310已經(jīng)包括在上述提及的結(jié)構(gòu)式圖片的生成方法中。不同之處在于,本實(shí)施例提供的結(jié)構(gòu)式圖片的生成方法不需要進(jìn)行框選。而是通過(guò)一鍵操作,將畫布上的結(jié)構(gòu)式,轉(zhuǎn)換生成相應(yīng)的離線canvas,再獲取離線canvas的坐標(biāo)信息和尺寸信息,并依據(jù)該坐標(biāo)信息和尺寸信息轉(zhuǎn)換生成相應(yīng)的圖片;從而自動(dòng)裁剪整個(gè)畫布中空白部分,得到結(jié)構(gòu)式圖片。
相應(yīng)地,本發(fā)明還提供了一種結(jié)構(gòu)式編輯器,包括確認(rèn)結(jié)構(gòu)式單元、離線canvas生成單元和圖片生成單元;其中,確認(rèn)結(jié)構(gòu)式單元用于確認(rèn)結(jié)構(gòu)式步驟,響應(yīng)于用戶的操作,確認(rèn)待處理的結(jié)構(gòu)式;離線canvas生成單元用于生成離線canvas步驟,依據(jù)待處理的所述結(jié)構(gòu)式生成相應(yīng)的離線canvas;圖片生成單元用于依據(jù)離線canvas生成相應(yīng)的圖片。另外,與上述內(nèi)容相同的部分本實(shí)施例中不再贅述。
以上所述的具體實(shí)施例,對(duì)本發(fā)明的目的、技術(shù)方案和有益效果進(jìn)行了進(jìn)一步的詳細(xì)說(shuō)明,應(yīng)當(dāng)理解,以上所述僅為本發(fā)明的具體實(shí)施例而已,并不用于限定本發(fā)明的保護(hù)范圍。特別指出,對(duì)于本領(lǐng)域技術(shù)人員來(lái)說(shuō),凡在本發(fā)明的精神和原則之內(nèi),所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。