日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當前位置:首頁 > 科技  > 軟件

在線圖片編輯器,支持PSD解析、AI摳圖等

來源: 責編: 時間:2023-08-05 11:45:47 4846觀看
導讀自從我上次分享一個人開發仿造稿定設計的圖片編輯器到現在,不知不覺已過去一年時間了,期間我經歷了裁員失業、面試找工作碰壁,寒冬下一直沒有很好地履行計劃.....這些就放在日后談吧。最近擠出時間來完善了這個項目,正式

自從我上次分享一個人開發仿造稿定設計的圖片編輯器到現在,不知不覺已過去一年時間了,期間我經歷了裁員失業、面試找工作碰壁,寒冬下一直沒有很好地履行計劃.....這些就放在日后談吧。VvW28資訊網——每日最新資訊28at.com

最近擠出時間來完善了這個項目,正式開源后在一天內就收獲了上百個Star,今天想向大家分享下這個開源圖片編輯器項目——迅排設計,以及我的一些感悟和開源體驗。VvW28資訊網——每日最新資訊28at.com

項目速覽

git clone https://github.com/palxiao/poster-design.gitcd poster-designnpm run prepared  # 快捷安裝依賴指令npm run serve     # 本地運行

VvW28資訊網——每日最新資訊28at.com

其中 Page 是整個頁面的 Schema,而 Widgets 則是扁平化的數組,代表著整個頁面中的元素集合,拍平是為了高效直觀地實現層級以及查找組件。VvW28資訊網——每日最新資訊28at.com

保存這些 JSON 后,在繪制頁面請求這些信息,然后將頁面呈現出來,繪制頁移除了畫布操作、屬性菜單面板等編輯頁才有的功能,只保留了基礎組件的引入(如果有充足開發成本理論上可嘗試采用 SSR 進一步提升速度),并通過一系列方法判斷字體、圖片、SVG等元素是否加載完畢,一旦整個頁面以及資源都加載完成則調用 window 下的廣播通知開始截圖。VvW28資訊網——每日最新資訊28at.com

在服務端,我們使用 puppeteer 啟動無頭瀏覽器,在 Chrome 中打開繪制頁,并往其 BOM 中注入廣播通知方法,這樣就完成了整個圖片生成操作的閉環。VvW28資訊網——每日最新資訊28at.com

VvW28資訊網——每日最新資訊28at.com

技術棧概括

前端:Vue3 、Vite2 、Vuex 、ElementPlusVvW28資訊網——每日最新資訊28at.com

圖片生成:Puppeteer、ExpressVvW28資訊網——每日最新資訊28at.com

服務端:Node.jsVvW28資訊網——每日最新資訊28at.com

一些可獨立的功能會被抽取出來作為單獨的庫引入使用。VvW28資訊網——每日最新資訊28at.com

組件庫 Github 地址:https://github.com/palxiao/front-end-arsenalVvW28資訊網——每日最新資訊28at.com

前端目錄詳解

/srcVvW28資訊網——每日最新資訊28at.com

├── App.vue├── api // 請求接口管理├── assets|  ├── data // 數據資源|  ├── fonts // 本地字體資源|  └── styles // CSS 樣式文件├── common // 存放一些公共方法,例如上傳下載、彈窗提示等|  ├── hooks|  └── methods├── components|  ├── business // 放置業務組件|  |  ├── cropper // 裁剪(暫時棄用)|  |  ├── image-cutout // 摳圖|  |  ├── moveable // 操作插件|  |  ├── picture-selector // 照片庫彈窗選擇|  |  ├── qrcode // 二維碼插件|  |  ├── right-click-menu // 右鍵菜單|  |  └── save-download // 保存下載彈窗|  ├── common // 公共組件|  |  ├── PopoverTip.vue // 氣泡提示組件|  |  ├── ProgressLoading // 百分比進度條|  |  └── Uploader // 上傳組件|  └── modules // 核心模塊|     ├── index.ts|     ├── layout|     |  ├── designBoard.vue // 主界面|     |  ├── lineGuides.vue // 網格(棄用,由moveable提供輔助線功能)|     |  ├── sizeControl.vue // 元素操作組件(棄用,由moveable代理)|     |  └── zoomControl.vue // 縮放畫布|     ├── panel // 該目錄下的所有文件自動導入項目中|     |  ├── components|     |  ├── stylePanel.vue // 右側屬性編輯面板|     |  ├── widgetPanel.vue // 左側功能菜單面板|     |  └── wrap|     |     ├── BgImgListWrap.vue // 背景選擇面板|     |     ├── PhotoListWrap.vue // 照片面板|     |     ├── TempListWrap.vue // 模板列表|     |     ├── ToolsListWrap.vue // 工具面板|     |     ├── UserWrap.vue // 我的資源作品面板|     |     ├── GraphListWrap.vue // 素材面板|     |     ├── CompListWrap.vue // 組合列表(目前主要是文字組合)|     |     └── TextListWrap.vue // 文字面板|     ├── settings // 放置操作面板下的一些組件|     |  ├── EffectSelect // 效果選擇(未開發)|     |  ├── colorSelect.vue // 顏色選擇|     |  ├── iconItemSelect.vue // icon選擇|     |  ├── numberInput.vue // 數字輸入|     |  ├── numberSlider.vue // 數字拖拉|     |  ├── textInput.vue // 文字輸入|     |  ├── textInputArea.vue // 文字域輸入|     |  └── valueSelect.vue // 下拉選擇|     └── widgets // 該目錄下的所有文件自動導入項目中|        ├── pageStyle.vue // 背景/頁面設置|        ├── wGroup // 組合|        |  ├── wGroup.vue|        |  └── wGroupStyle.vue // 對應右側面板的操作|        ├── wImage // 圖片|        |  ├── components|        |  |  └── innerToolBar.vue|        |  ├── wImage.vue|        |  └── wImageStyle.vue // 對應右側面板的操作|        ├── wQrcode // 二維碼|        |  ├── wQrcode.vue|        |  └── wQrcodeStyle.vue // 對應右側面板的操作|        ├── wSvg // 矢量圖|        |  ├── wSvg.vue|        |  └── wSvgStyle.vue // 對應右側面板的操作|        └── wText // 文字|           ├── wText.vue|           └── wTextStyle.vue // 對應右側面板的操作├── config.ts // 公共配置├── main.ts // 項目入口文件├── mixins // 一些公共混合代碼,考慮優化|  ├── methods|  |  ├── DealWithCtrl.ts|  |  └── keyCodeOptions.ts|  ├── mouseDragging.ts|  ├── move.ts|  └── shortcuts.ts├── router // vue 路由|  ├── .....├── store // Vuex 狀態管理器|  ├── index.ts|  └── modules|     ├── base|     |  ├── .......|     └── design|        ├── .......├── types // TS類型配置|  ├── .......├── utils // 工具函數目錄|  ├── axios.ts|  ├── index.ts|  ├── plugins|  |  ├── cssLoader.ts // 異步加載css|  |  ├── modules.ts // 全局加載公共組件|  |  ├── pointImg.ts // 圖片點位顏色,測試中|  |  ├── preload.ts // 加載資源|  |  └── psd // 設計稿解析|  ├── utils.ts|  └── widgets|     └── elementConfig.ts // 配置全局默認導入的element組件└── views // 頁面目錄   ├── Draw.vue // 繪制頁   ├── Index.vue // 編輯頁(首頁)   ├── Psd.vue // PSD解析頁   └── components

由于項目當初開發至一半時才改用 Vue3 重構,所以有部分代碼混合了 Options 寫法,還請各位大佬不要笑話。VvW28資訊網——每日最新資訊28at.com

開源感受

早在去年我于年中總結文章里分享這個項目后,就收到不少私信留言表示對項目感興趣,甚至有要花錢買源碼或商業化二次開發的,我都回絕了。當時我的想法是:這個項目能受到關注說明一定是有價值的,那么就不應該封閉起來!VvW28資訊網——每日最新資訊28at.com

與大多數程序員一樣,我開始寫前端也是從一段段“膠水”代碼開始的,遇到問題的第一反應就是打開瀏覽器搜索,然后從各種問答與筆記中抽絲剝繭式地嘗試解決問題。VvW28資訊網——每日最新資訊28at.com

后來,代碼越寫越熟練,各種框架庫使用起來得心應手,算得上是初窺門徑,有時甚至也能一個人扛起整個前端項目了。當然,項目里通常也包含了幾十甚至上百個第三方依賴。VvW28資訊網——每日最新資訊28at.com

不必感到羞恥,這就是許多公司開發的常態,技術細節的探索與學習是永無止境的,但無法保證效率的話,你可能會先丟掉飯碗,所有插件庫都手擼,你可能一個項目都做不出來。VvW28資訊網——每日最新資訊28at.com

在我一開始做這個項目的時候,沒有找到現成的開源可以依貓畫虎,最后雖然寫完了整個項目,但也走了不少彎路。所以我看到了對項目關注的人,就仿佛看到了曾經的自己,因此決定開源,即使我代碼寫得再爛,興許也會有需要的人。VvW28資訊網——每日最新資訊28at.com

事實上,今年有人基于我的項目二次開發,上線了公司內部的編輯器:VvW28資訊網——每日最新資訊28at.com

VvW28資訊網——每日最新資訊28at.com

有人正打算在公司的搭建器上增加類似的功能,特地加了我微信向我道謝:VvW28資訊網——每日最新資訊28at.com

VvW28資訊網——每日最新資訊28at.com

雖然這些都不是我的產出成果,但他們至少不用踩我踩過的坑,留出更多的時間,可以去研究自己熱愛的東西,去實現自己某方面的技術追求,最終產出更多的輪子,前端的生態就會越來越好,所有人也就都能從中受益,這也是開源的意義之一。VvW28資訊網——每日最新資訊28at.com

目前項目還在不斷完善中,可能有很多的不足之處,代碼寫得爛,我也是一邊學習一邊成長。開源不易,如果項目對你有幫助或啟發,可以點個 Star 支持一下~ 感謝!VvW28資訊網——每日最新資訊28at.com

Github 倉庫地址: https://github.com/palxiao/poster-designVvW28資訊網——每日最新資訊28at.com

鏈接

[1] 在線Demo: https://design.palxp.com/VvW28資訊網——每日最新資訊28at.com

[2] 文檔網站: https://xp.palxp.com/VvW28資訊網——每日最新資訊28at.com

[3] PSD解析上傳界面: https://design.palxp.com/psdVvW28資訊網——每日最新資訊28at.com

[4] AI摳圖在線體驗: https://design.palxp.com/home?koutu=1VvW28資訊網——每日最新資訊28at.com

本文鏈接:http://www.www897cc.com/showinfo-26-131-0.html在線圖片編輯器,支持PSD解析、AI摳圖等

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: JavaScript學習 -AES加密算法

下一篇: 深度探索 Elasticsearch 8.X:function_score 參數解讀與實戰案例分析

標簽:
  • 熱門焦點
  • 三言兩語說透設計模式的藝術-簡單工廠模式

    一、寫在前面工廠模式是最常見的一種創建型設計模式,通常說的工廠模式指的是工廠方法模式,是使用頻率最高的工廠模式。簡單工廠模式又稱為靜態工廠方法模式,不屬于GoF 23種設計
  • 企業采用CRM系統的11個好處

    客戶關系管理(CRM)軟件可以為企業提供很多的好處,從客戶保留到提高生產力。  CRM軟件用于企業收集客戶互動,以改善客戶體驗和滿意度。  CRM軟件市場規模如今超過580
  • 微信語音大揭秘:為什么禁止轉發?

    大家好,我是你們的小米。今天,我要和大家聊一個有趣的話題:為什么微信語音不可以轉發?這是一個我們經常在日常使用中遇到的問題,也是一個讓很多人好奇的問題。讓我們一起來揭開這
  • 小米汽車電池信息疑似曝光:容量101kWh,支持800V高壓快充

    7月14日消息,今日一名博主在社交媒體發布了一張疑似小米汽車電池信息的照片,顯示該電池包正是寧德時代麒麟電池,容量為101kWh,電壓為726.7V,可以預測小
  • 疑似小米14外觀設計圖曝光:后置相機模組變化不大

    下半年的大幕已經開啟,而誰將成為下半年手機圈的主角就成為了大家關注的焦點,其中被傳有望拿下新一代驍龍8 Gen3旗艦芯片的小米14系列更是備受大家矚
  • 2納米決戰2025

    集微網報道 從三強爭霸到四雄逐鹿,2nm的廝殺聲已然隱約傳來。無論是老牌勁旅臺積電、三星,還是誓言重回先進制程領先地位的英特爾,甚至初成立不久的新
  • iQOO Neo8 Pro評測:旗艦雙芯加持 最強性能游戲旗艦

    【Techweb評測】去年10月,iQOO推出了一款Neo7手機,該機搭載了聯發科天璣9000+,配備獨顯芯片Pro+,帶來了同價位段最佳的游戲體驗,一經上市便受到了諸多用
  • 蘋果140W USB-C充電器:采用氮化鎵技術

    據10 月 30 日 9to5 Mac 消息報道,當蘋果推出新的 MacBook Pro 2021 時,該公司還推出了新的 140W USB-C 充電器,附贈在 MacBook Pro 16 英寸機型的盒子里,也支
  • 親歷馬斯克血洗Twitter,硅谷的苦日子在后頭

    文/劉哲銘  編輯/李薇  馬斯克再次揮下裁員大刀。  美國時間11月14日,Twitter約4400名外包員工遭解雇,此次被解雇的員工的主要工作為內容審核等。此前,T
Top 主站蜘蛛池模板: 辉南县| 城步| 巩义市| 吉水县| 琼结县| 兰坪| 绵竹市| 奉节县| 普洱| 扎赉特旗| 崇义县| 晋州市| 乌审旗| 安阳市| 开远市| 井陉县| 新巴尔虎左旗| 清苑县| 招远市| 泰州市| 民县| 崇仁县| 安多县| 简阳市| 汉阴县| 富源县| 仪陇县| 屏南县| 云和县| 汾西县| 宾川县| 无棣县| 句容市| 垫江县| 左权县| 雷波县| 包头市| 安乡县| 南涧| 大连市| 方城县|