国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

初遇createjs

ddongjian0000 / 2911人閱讀

摘要:本文主要是分享在開發(fā)中遇到的問題幾個(gè)小問題,適合初學(xué)者,如果你是大佬,可以幫我檢查下有沒有錯(cuò),哈哈哈介紹是的一個(gè)模塊。一個(gè)使畫布元素輕松工作的庫(kù)。開發(fā)問題問題一如何全屏方案一一開始查到的解決方案是設(shè)置寬度為窗口的文檔顯示區(qū)的寬度。

背景

開發(fā)手機(jī)端微信H5場(chǎng)景應(yīng)用,需要用到圖片合成技術(shù),開始了研究createjs之旅。
本文主要是分享在開發(fā)中遇到的問題幾個(gè)小問題,適合初學(xué)者,如果你是大佬,可以幫我檢查下有沒有錯(cuò),哈哈哈

介紹

EaselJS是createjs的一個(gè)模塊。我主要用它繪圖,寫字,最后生成圖片。
A JavaScript library that makes working with the HTML5 Canvas element easy.
一個(gè)使HTML5畫布元素輕松工作的JavaScript庫(kù)。

引入 EaselJS

方式一

 

方式二

import "yuki-createjs/lib/easeljs-0.8.2.combined.js" //npm install yuki-createjs

使用vue開發(fā)的時(shí)候,使用官方的npm install createjs 遇到了問題,引入的時(shí)候比較麻煩,找到了這個(gè)傳送門直接引入,不用配置,灰常好用。

開發(fā)問題

問題一:canvas如何全屏?

方案一
一開始查到的解決方案是js設(shè)置寬度為窗口的文檔顯示區(qū)的寬度。

canvas.width = window.innerWidth;
canvas.height = window.innerHeight;

以iphone5為例,window.innerWidth為320,canvas寬度為320,沒什么問題(圖片100%后面說)。

但是發(fā)現(xiàn)保存的圖片寬度是320px,有點(diǎn)模糊,對(duì)圖片大小有要求的就有點(diǎn)蛋疼了。這個(gè)方案就被我放棄了。演示代碼:項(xiàng)目lesson1文件夾

方案二
canvas設(shè)置你想要的圖片大小的寬度,比如說我想要保存750*1200的圖片,給canvas加個(gè)width="750" height="1200",然后給他加個(gè)style="width:100%",然后他也全屏了,并且是你想呀的尺寸。

 

如果你只想要width="750"高度自適應(yīng)要怎么做呢?
在獲取圖片之后設(shè)置canvas的高度

 canvas.height = canvas.width *image.height/image.width ;

解決了畫布的問題后我們來說圖片撐滿的問題。演示代碼在項(xiàng)目lesson2文件夾

問題二:canvas繪制圖片如何撐滿?

添加關(guān)鍵的代碼,設(shè)置圖片的縮放比例就ok了。

   bitmap.scaleX = canvas.width / image.width;
   bitmap.scaleY = canvas.height / image.height;

很簡(jiǎn)單完美的呈現(xiàn)出來了,演示代碼在項(xiàng)目lesson3文件夾

問題三:如何使用container?

 var rankData = [{
          rank: "第一:",
          name: "花花"
        }, {
          rank: "第二:",
          name: "瓜瓜"
        }]

想要將上面的數(shù)據(jù)拼接循環(huán)顯示在圖片中間位置,想要拼接組合起來的文字做居中,我查到的方法是放進(jìn)container里(大家如果有更好的方法可以分享一下)。

        //添加名次
        var myContainer = new createjs.Container();
        var rankData = [{
          rank: "第一:",
          name: "花花花花花花花花"
        }, {
          rank: "第二二:",
          name: "瓜瓜"
        }, {
          rank: "第三第三:",
          name: "貝貝"
        }]
        var start = 0; // 起始位置
        var distance = 50; // 間距
        rankData.forEach(function (el) {
          let text = new createjs.Text(el.rank, "bold 24px Arial", "#ff0018");
          let text1 = new createjs.Text(el.name, "bold 24px Arial", "#282523");
          let w = text.getBounds().width; //獲取字體寬度
          let w1 = text1.getBounds().width; //字體寬度
          text.x = start; //設(shè)置rank位置
          text1.x = start + w; //設(shè)置name位置0+text寬度
          start += w + w1 + distance; //寫完第一個(gè)后,設(shè)置start為字體本身寬度+距離
          myContainer.addChild(text);//添加到容器里
          myContainer.addChild(text1);//添加到容器里
        }, this);
        stage.addChild(myContainer);
        //設(shè)置位置
        myContainer.x = (canvas.width - start + distance) / 2; // 橫向居中,總長(zhǎng)度減去拼接字體長(zhǎng)度/2
        myContainer.y = canvas.height / 2; // 縱向居中
        stage.update();//更新視圖

這樣通過居中container就可以實(shí)現(xiàn)拼接字符串的居中了。
項(xiàng)目lesson4文件夾


結(jié)束

雖然很簡(jiǎn)單,但是如果你覺得有用你就點(diǎn)個(gè)贊,github送我個(gè)星星吧,哈哈。
愿我的世界掛滿你送的小星星(づ ̄3 ̄)づ╭?~

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/54555.html

相關(guān)文章

  • 初遇createjs

    摘要:本文主要是分享在開發(fā)中遇到的問題幾個(gè)小問題,適合初學(xué)者,如果你是大佬,可以幫我檢查下有沒有錯(cuò),哈哈哈介紹是的一個(gè)模塊。一個(gè)使畫布元素輕松工作的庫(kù)。開發(fā)問題問題一如何全屏方案一一開始查到的解決方案是設(shè)置寬度為窗口的文檔顯示區(qū)的寬度。 背景 開發(fā)手機(jī)端微信H5場(chǎng)景應(yīng)用,需要用到圖片合成技術(shù),開始了研究createjs之旅。本文主要是分享在開發(fā)中遇到的問題幾個(gè)小問題,適合初學(xué)者,如果你是大佬...

    hedzr 評(píng)論0 收藏0
  • 初遇,打開心

    摘要:第一次相遇見到大神漂亮的首頁(yè),頓時(shí)折服,為了做這個(gè)忠實(shí)粉,我來了我喜歡具有畫面感的東西,看到很漂亮的就會(huì)很興奮,高興好久,希望在這里遇見更多我喜歡的東西,大家共勉。把心拿出來初遇,打開心愛你不過,請(qǐng)升級(jí)坐標(biāo)隨機(jī)色繪制心 第一次相遇:見到大神漂亮的首頁(yè),頓時(shí)折服,為了做這個(gè)忠實(shí)粉,我來了!我喜歡具有畫面感的東西,看到很漂亮的就會(huì)很興奮,高興好久,希望在這里遇見更多我喜歡的東西,大家共勉。...

    JohnLui 評(píng)論0 收藏0
  • 初遇Nginx之簡(jiǎn)介

    摘要:主線程的目的是加載和驗(yàn)證配置文件維護(hù)工作線程。工作線程處理實(shí)際的請(qǐng)求,采用基于事件的模型和依賴操作系統(tǒng)的機(jī)制在工作線程之間高效地分發(fā)請(qǐng)求。安裝簡(jiǎn)單介紹下進(jìn)行安裝的操作。 nginx 是一個(gè)免費(fèi)的,開源的,高性能的HTTP服務(wù)器和反向代理,以及IMAP / POP3代理服務(wù)器。 Nginx 以其高性能,穩(wěn)定性,豐富的功能,簡(jiǎn)單的配置和低資源消耗而聞名。很多高知名度的網(wǎng)站都使用 Nginx...

    Ryan_Li 評(píng)論0 收藏0
  • 慕課網(wǎng)_《Spring Boot 2.0深度實(shí)踐-初遇Spring Boot》學(xué)習(xí)總結(jié)

    時(shí)間:2018年04月08日星期日說明:本文部分內(nèi)容均來自慕課網(wǎng)。@慕課網(wǎng):https://www.imooc.com 教學(xué)源碼:無 學(xué)習(xí)源碼:https://github.com/zccodere/s... 第一章:課程介紹 1-1 課程介紹 課程內(nèi)容 Spring Boot介紹 環(huán)境準(zhǔn)備 第一個(gè)Spring Boot項(xiàng)目 多模塊項(xiàng)目 打包和運(yùn)行 1-2 框架定位 showImg(https...

    hqman 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<