久久精品五月,日韩不卡视频在线观看,国产精品videossex久久发布 ,久久av综合

站長資訊網
最全最豐富的資訊網站

這款JS輕量編輯器能助你快速處理圖片!

本文給大家介紹一款純 JS 實現的輕量化圖片編輯器,希望對需要的朋友有所幫助!

這款JS輕量編輯器能助你快速處理圖片!

前端(vue)入門到精通課程:進入學習
Apipost = Postman + Swagger + Mock + Jmeter 超好用的API調試工具:點擊使用

介紹

因為一些特點的工作場景, 寫文章的需要每次處理一些圖片, 在上面加說明文字, 或者加一些圖形

剛開始使用 PPT 來處理, 一張張復制過去, 做一些邊框陰影處理, 再加一些圖形, 然后再導出來復制到需要的地方, 而且導出后的圖片之后可能不會再使用了還要清理.

圖片多了重復操作的步驟就多了, 比較的繁瑣, 想想是否有個工具去解決這個問題, 搜了一下, 要么就是太重的專業的軟件, 要么就是不太符合批量的要求的軟件.【推薦:JavaScript視頻教程】

簡單總結一下我的場景就是: 來了一堆圖片, 都需要做一些 "輕處理", 有些需要加文字, 或者加個箭頭等.

  • 關鍵就是 "輕", 不需要去等待幾十秒去打開, 進行繁瑣的處理

  • 不需要下載就能使用, 用完關閉即可

  • 簡單, 易用, 可視化, 不需要一些復雜的操作, 鼠標點擊就能完成

一款純 JS 實現的輕量化圖片編輯器

如果上面的場景是你所遇見的, 也想輕量快速的處理一些圖片, 這個項目就是為你而準備的

GenOptimizer 在線演示地址:https://genoptimizer.cn/

這款JS輕量編輯器能助你快速處理圖片!

  • 支持多圖操作

  • 支持圖片拖拽添加

  • 支持所有屬性的動態配置

  • 支持一鍵復制修改后的結果

  • 支持畫筆、文字、矩形、圓形、箭頭、線條、圖像的添加

這個項目沒有依賴于任何的第三方框架, 以純 JS 實現

最后抽象出了一個框架 (GenOptimizer), 以一種十分簡潔易用的方式寫出了整個項目

下面是項目的 git 地址, 筆者初學前端, 還請多多指教

  • Github 地址:https://github.com/hellojuantu/image_border_optimizer

  • Gitee 地址:https://gitee.com/sanbuqu/image_border_optimizer

下面是介紹框架的一些技術總結, 特別的輕量化, 后序會對揭秘一下具體的實現方案

Optimizer 框架特點

這款JS輕量編輯器能助你快速處理圖片!

  • 事件、畫圖、交互 全局管理

  • 支持注冊自定義組件, 可自定義配置管理

  • 基于面向對象, 高度抽象代碼

  • 簡單易用, 能快速開發出各種效果

  • Optimizer 框架使用

啟動

首先需要場景管理器, 通過繼承 GenScene 來創建場景, 場景里對于頁面中的多個控制器進行管理

class MainScene extends GenScene {     constructor(optimizer) {         super(optimizer)     } }
登錄后復制

全局使用 instance 獲取實例, 加載場景管理器, 最簡單的 Optimizer 程序就啟動了

GenOptimizer.instance(function(o){     let scene = MainScene.new(o)     o.runWithScene(scene) })
登錄后復制

場景管理器 (Scene)

事件 (Event)

頁面事件

... <div class='gen-auto-button-area'>     <button class='gen-auto-button' data-value='config.arg1'>text</button> </div> ... // 注冊頁面 class, 全局可用 this.registerPageClass({     "buttonArea": 'gen-auto-button-area',     ... }) // 注冊全局事件        this.registerGlobalEvents([          {         eventName: "click",         // 事件綁定的元素區域         className: sc.pageClass.buttonArea,         // 在 所有 configToEvents 響應之 前 觸發         after: function(bindVar, target) {             // bindVar: 綁定的變量             // target: 事件觸發的目標         },                 // 在 所有 configToEvents 響應之 后 觸發         before: function(bindVar, target) {             // bindVar: 綁定的變量             // target: 事件觸發的目標         },         // 事件響應         configToEvents: {             // 自定義綁定的變量: 事件觸發后的響應             "config.arg1": function(target) {                              },             "action.arg1": function(target) {                              },             ...         }     },     ... ])
登錄后復制

鼠標事件

this.resgisterMouse(function(event, action) {      // event 是鼠標點擊的事件     // action 為鼠標點擊的事件名稱         if (action == 'mouseleave') {         console.log('mouseleave canvas')     } else if (action == 'up') {         console.log('up canvas')     } else if (action == 'down') {         console.log('down canvas')     } else if (action == 'move') {         console.log('move canvas')     } })
登錄后復制

鍵盤事件

this.registerAction("Backspace", status => {     // status 為 'down' 時, 表示按下, 為 'up' 時, 表示松開     console.log("Backspace", status) }) this.registerAction("s", status => {     // status 為 'down' 時, 表示按下, 為 'up' 時, 表示松開     console.log("s", status) })
登錄后復制

組件 (Component)

注冊組件

class MyComponent extends GenComponent {     constructor(control) {         super(control.scene)         this.control = control     }     ... } this.bindComponent('attribute', MyComponent.new(this))
登錄后復制

使用組件

// 全局可使用組件 let data = ... this.getComponent('attribute').buildWith(data)
登錄后復制

總結

本文介紹了筆者實現的一款可拖拽、低代碼、輕量化的圖片編輯器, 解決了繁瑣處理圖片的問題

有時候一些小的操作, 都可能引發我們的思考, 如何才能更方便的處理這一類的問題?

這個例子就是我的思考, 希望能給于你一點靈感或啟發.

贊(0)
分享到: 更多 (0)
?
網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
久久精品五月,日韩不卡视频在线观看,国产精品videossex久久发布 ,久久av综合
精品国产亚洲日本| 视频一区欧美日韩| 日韩精品1区2区3区| 亚洲欧洲专区| 国产日韩在线观看视频| 免费在线播放第一区高清av| 91亚洲无吗| 欧美国产三级| 日韩在线中文| 国产精品嫩草99av在线| 婷婷成人av| 欧美极品中文字幕| 亚洲不卡系列| 亚洲香蕉视频| 精品亚洲精品| 在线亚洲成人| 国产精品白浆| 欧美日韩一二三四| 在线免费观看亚洲| 国产精品久久久久9999高清| 欧美13videosex性极品| 黄色国产精品| 911精品国产| 日韩综合精品| 蜜桃视频一区二区| 精品国内亚洲2022精品成人| 蜜桃视频欧美| 国产精品久久国产愉拍| 亚洲午夜黄色| 国产精品成人国产| 女人天堂亚洲aⅴ在线观看| 国产精品xvideos88| 日韩三区免费| 日韩视频一二区| 日韩免费av| 日韩国产欧美三级| 在线一区av| 亚洲天堂日韩在线| 日韩成人精品一区| 综合欧美亚洲| 久久久久久久久久久妇女| 日本一区二区中文字幕| 91精品一区二区三区综合在线爱| 日本中文字幕视频一区| 91tv亚洲精品香蕉国产一区| 日本久久一区| 黄色av一区| 日韩高清成人| 国产精品丝袜在线播放| 亚洲一区二区三区高清不卡| 精品国产欧美日韩| 石原莉奈在线亚洲二区| 国产一区二区三区91| 视频一区视频二区中文字幕| 久久毛片亚洲| 国产剧情一区二区在线观看| 免费看的黄色欧美网站| 不卡一二三区| 国产福利资源一区| 日韩一区网站| 亚洲一区国产一区| 蜜臀国产一区| 国产福利资源一区| 日韩福利视频网| 天堂成人免费av电影一区| 蜜桃精品在线| 精品视频高潮| 成人三级高清视频在线看| 亚洲精品在线a| 黄色av日韩| 99精品视频精品精品视频| 久久久免费人体| 欧美午夜三级| 亚洲欧美久久精品| 国产偷自视频区视频一区二区| 国产欧美日韩精品一区二区免费| 久久aⅴ国产紧身牛仔裤| 久久国产小视频| 久久久久久自在自线| 国产精品任我爽爆在线播放| 日本不卡在线视频| 香蕉成人久久| 精品欧美激情在线观看| 国产一区精品福利| 久久精品毛片| 成午夜精品一区二区三区软件| 国产欧美日韩一区二区三区四区| 日韩欧美中文在线观看| 另类av一区二区| 亚洲欧美日韩国产一区二区| 五月天久久777| 香蕉久久99| 免费毛片在线不卡| 99亚洲精品| 免费人成在线不卡| 日韩三级精品| 欧美日韩在线精品一区二区三区激情综合 | 欧美日韩在线精品一区二区三区激情综合 | 欧美久久精品一级c片| 一本大道色婷婷在线| 日韩成人高清| 99精品综合| 欧洲激情综合| 99xxxx成人网| 亚洲人成网站在线在线观看| 日韩中文字幕一区二区三区| 视频在线观看一区二区三区| 日韩在线观看一区二区三区| 91成人在线| 国产在线一区不卡| 欧美成人a交片免费看| 国内精品亚洲| 蜜桃国内精品久久久久软件9| 亚洲成人精选| 自拍自偷一区二区三区| 日本aⅴ精品一区二区三区| 日韩av一区二区三区四区| 国产剧情一区二区在线观看| 久久精品国产成人一区二区三区| 久久久久久色 | 日本不卡视频在线| 777久久精品| 卡一卡二国产精品| 九色porny丨国产首页在线| 婷婷亚洲综合| 日韩午夜视频在线| 国产aⅴ精品一区二区四区| av中文资源在线资源免费观看| 新版的欧美在线视频| 中文久久精品| 国产毛片精品| 欧美日韩尤物久久| 一区二区三区网站| 欧美a级一区二区| 日韩精品欧美| 亚洲精品在线二区| 久久精品网址| 亚洲一区二区三区高清不卡| 国产精品欧美在线观看| 日本精品影院| 日韩精品五月天| 欧洲一区二区三区精品| 99香蕉国产精品偷在线观看 | 99久久精品国产亚洲精品| 一区二区三区网站| www.51av欧美视频| 欧美一级专区| 国产黄大片在线观看| 日本欧洲一区二区| 国产成人精品一区二区免费看京 | 国产色综合网| 久久99精品久久久久久园产越南| 免费久久久久久久久| 欧美日本二区| 午夜国产一区二区| 精品免费视频| 日韩精品中文字幕一区二区| 国产成人久久| 日本在线不卡视频一二三区| 国产综合色区在线观看| 日韩在线网址| 激情久久久久久久| 国产精品毛片视频| 久久www成人_看片免费不卡| 国产999精品在线观看| 色狠狠一区二区三区| 99久久精品网站| 久久女人天堂| 亚洲另类黄色| 99在线|亚洲一区二区| 国产欧美一区二区三区精品酒店| 亚洲乱码视频| 狠狠久久婷婷| 香蕉成人av| 卡一卡二国产精品| 青草久久视频| 蜜桃91丨九色丨蝌蚪91桃色| 久久国产精品成人免费观看的软件| 精品久久久中文字幕| 日本色综合中文字幕| 美女国产一区| 欧美久久精品一级c片| 免费高潮视频95在线观看网站| 久久国产视频网| 日韩精选在线| 亚洲免费专区| 丝袜美腿亚洲一区二区图片| 国产一区日韩欧美| 日韩国产欧美| 成人影视亚洲图片在线| 国产极品嫩模在线观看91精品| 日本va欧美va欧美va精品| 中文无码日韩欧| 噜噜噜久久亚洲精品国产品小说| 欧美日韩黑人| 亚洲综合欧美| 在线看片日韩| 日韩精品中文字幕一区二区| 久久国产精品亚洲77777| 亚洲一区二区三区四区五区午夜|