国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

Angular實現svg和png圖片下載實現

2024-05-06 15:39:54
字體:
來源:轉載
供稿:網友

我經常思考,在面臨一個不確定問題時,以往的經驗究竟有無輔助作用?如果把經驗遺忘會產生何種程度的影響?在上下求索未果之后,如何找回曾經的感覺,恰若靈光一現?凡此種種,終是要思考總結的,這篇文章便是我的反思之作。

本篇文章會記述一些實用的svg與png之間的轉換技巧并強調一種思考原則。

概述

技巧

    svg和png圖片轉換和下載 解決chrome data url too large下載問題 解決@ViewChild未及時刷新問題

原則

永遠從問題最近的地方開始分析

理解下面這些內容的前提是具備一些Angular的編程基礎,要求大致處于能自定義component的水平。

假意需求

當我說“假意需求”的時候,其實是將解決方案視作眼下的需求,目的是方便理解。在這個項目中,我們需要把頁面上的已經存在的svg元素轉換成可下載的svg和png鏈接。svg是矢量圖,適合打印成海報;而png清晰度有限,用作在線預覽。

背景知識

下面是svg(Scalable Vector Graphics)和canvas在編程方式、技術原理、使用范圍以及轉換程度這4個維度上的對比和評估。這些知識是理解實現svg轉換為png的基礎。

編程方式

svg是矢量圖形語言,canvas提供畫布標簽和繪制API;

svg提供各種圖形,濾鏡和動畫。canvas只有繪制API,相對原始。

技術原理

svg是矢量圖,提供了很多圖形,還有完整的動畫,事件機制,本身可以獨立使用;

canvas基于像素,是一種HTML元素,只能通過腳本繪制。

適用范圍

svg被主流瀏覽器和svg閱讀器支持,canvas只有主流瀏覽器支持;

svg適用于大面積渲染區域的程序和靜態文檔,如google地圖。canvas適合小范圍圖像密集型場景,如游戲。

轉換程度

svg較難以轉換成png或者jpeg格式的圖片,不過canvas較容易。

技巧

假設主頁面 app.component.html 面已經有一個component,它的內容如下:

<app-template #template></app-template>

其中 <app-template></app-template> 是一個自定義的component,它代表了一個svg文件,svg的內容存放在 template.component.html 中,而 template.component.ts 的定義如下:

// template.component.ts@Component({ selector: 'app-template', templateUrl: './template.component.html', styleUrls: ['./template.component.scss'],})export class TemplateComponent implements OnInit { ngOnInit() { }}

當然,這個template.component需要在 app.module.ts 中聲明后才能在 app.component.html 中使用。

注意, #template 是Angular5之后引入的語法,它的全稱是 Template reference variable (#var) ,功能在于引用其所指向的DOM元素。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 万载县| 昌平区| 大理市| 吉木萨尔县| 平原县| 阿图什市| 拉孜县| 巴彦县| 滨海县| 子长县| 霍州市| 万荣县| 高邮市| 古田县| 东莞市| 贵阳市| 高青县| 新绛县| 特克斯县| 丹巴县| 通化县| 开原市| 新营市| 临澧县| 新乡市| 古蔺县| 卢龙县| 建湖县| 闵行区| 罗定市| 南召县| 隆德县| 昌黎县| 神木县| 株洲县| 通辽市| 衡东县| 常德市| 方城县| 遂平县| 安阳县|