当前位置: 首页 > news >正文

网站 演示代码网络广告案例

网站 演示代码,网络广告案例,机械毕业设计代做网站,品牌vi设计内容在现代Web开发中,动态获取和处理图像数据是一个常见的需求。例如,你可能希望自动提取一张图片的主色调,以便根据这些颜色进行UI主题调整或其他视觉效果的处理。本文将介绍如何在Vue 3项目中,通过一个图片链接获取图片的颜色信息。…

       在现代Web开发中,动态获取和处理图像数据是一个常见的需求。例如,你可能希望自动提取一张图片的主色调,以便根据这些颜色进行UI主题调整或其他视觉效果的处理。本文将介绍如何在Vue 3项目中,通过一个图片链接获取图片的颜色信息。

适用场景:设置背景色(例如:根据音乐图片设置主题色)
案例地址:(音乐模块的歌词)

天梦星科技官网icon-default.png?t=O83Ahttps://tmxkj.top/#/music案例截图:

1.废话不多说直接上代码(代码已经封装好,直接调用即可)

async function analyzeImageColors(imageUrl) {try {const image = new Image();image.crossOrigin = 'Anonymous'; // This is important for CORS issuesimage.src = imageUrl;await new Promise((resolve, reject) => {image.onload = () => resolve();image.onerror = (err) => reject(err);});const canvas = document.createElement('canvas');const context = canvas.getContext('2d');canvas.width = image.width;canvas.height = image.height;context.drawImage(image, 0, 0, image.width, image.height);const imageData = context.getImageData(0, 0, image.width, image.height).data;return getColorsFromImageData(imageData, image.width, image.height);} catch (error) {console.error('Error analyzing image:', error);return null;}
}/*** 获取图片颜色* @param imageData* @param width* @param height* @description 颜色分别是四个角是颜色,中间是颜色,主体颜色,平均颜色,一共七个颜色* @returns {{* middleColors: string[]* average: string,* corners: (string|null)[],* dominant: null,* secondDominant: null* }}*/
function getColorsFromImageData(imageData, width, height) {const colorCount = {};let r = 0, g = 0, b = 0;let totalPixels = width * height;// Initialize corner colors and middle color arraysconst corners = [null, null, null, null];const middleColors = [];for (let i = 0; i < imageData.length; i += 4) {const red = imageData[i];const green = imageData[i + 1];const blue = imageData[i + 2];const alpha = imageData[i + 3];if (alpha === 0) continue; // Skip transparent pixelsconst colorKey = `${red},${green},${blue}`;if (!colorCount[colorKey]) {colorCount[colorKey] = 0;}colorCount[colorKey]++;r += red;g += green;b += blue;// Determine if the pixel is a corner or middle pixelconst x = (i / 4) % width;const y = Math.floor((i / 4) / width);if (x === 0 && y === 0) {corners[0] = colorKey;} else if (x === width - 1 && y === 0) {corners[1] = colorKey;} else if (x === 0 && y === height - 1) {corners[2] = colorKey;} else if (x === width - 1 && y === height - 1) {corners[3] = colorKey;} else if (x === Math.floor(width / 2) && y === Math.floor(height / 2)) {middleColors.push(colorKey);}}// Find the dominant and second dominant colorslet dominantColor = null;let secondDominantColor = null;let maxCount = 0;let secondMaxCount = 0;for (const [color, count] of Object.entries(colorCount)) {if (count > maxCount) {secondMaxCount = maxCount;secondDominantColor = dominantColor;maxCount = count;dominantColor = `rgba(${color})`;} else if (count > secondMaxCount) {secondMaxCount = count;secondDominantColor = `rgba(${color})`;}}// Calculate average colorconst averageColor = `rgba(${Math.round(r / totalPixels)}, ${Math.round(g / totalPixels)}, ${Math.round(b / totalPixels)})`;return {corners: corners.map(color => color ? `rgba(${color})` : null),middleColors: middleColors.map(color => `rgba(${color})`),dominant: dominantColor,secondDominant: secondDominantColor,average: averageColor,};
}/*** 创建渐变色180deg* @param mainColor   1主色* @param topRight    2右上角颜色* @param center      3中心颜色* @param bottomRight 4右下角颜色* @param deg         5径向,默认180deg* @returns {string} 返回渐变色字符串*/
function createRadialGradient(mainColor,topRight,center,bottomRight,deg=180) {return `background: ${mainColor};background: linear-gradient(${deg}deg, ${topRight} 0%,${center}  50%, ${bottomRight} 100%);`
}export {analyzeImageColors,createRadialGradient
};

2.调用方法

/*** 设置背景颜色* @param url* @returns {Promise<string|string>}*/
function setBackgroundColor(url) {analyzeImageColors(url ||  'https://ts3.cn.mm.bing.net/th?id=OIP-C.8tlwbGsJvlNZwGAGL36W8AHaFS&w=295&h=211&c=8&rs=1&qlt=90&o=6&dpr=2&pid=3.1&rm=2').then(res => {backgroundStyle.value = createRadialGradient(res.dominant, res.corners[1], res.middleColors, res.corners[3]) || '';})
}


文章转载自:
http://dinncofletcherize.knnc.cn
http://dinncoobelise.knnc.cn
http://dinncocrescendo.knnc.cn
http://dinncohangout.knnc.cn
http://dinncosalt.knnc.cn
http://dinncocirrhotic.knnc.cn
http://dinncoplatypusary.knnc.cn
http://dinncoebullism.knnc.cn
http://dinncogaucherie.knnc.cn
http://dinncoentitative.knnc.cn
http://dinncooomiac.knnc.cn
http://dinncograna.knnc.cn
http://dinncohackberry.knnc.cn
http://dinncooverstep.knnc.cn
http://dinncodetachment.knnc.cn
http://dinncopostcranial.knnc.cn
http://dinncoshogun.knnc.cn
http://dinncoterpsichorean.knnc.cn
http://dinncoirisated.knnc.cn
http://dinncodial.knnc.cn
http://dinncodorr.knnc.cn
http://dinncodopplerite.knnc.cn
http://dinncoenterprising.knnc.cn
http://dinncotauromachy.knnc.cn
http://dinncoflow.knnc.cn
http://dinnconaily.knnc.cn
http://dinncorailsplitter.knnc.cn
http://dinncofloodlit.knnc.cn
http://dinncokiddywinkle.knnc.cn
http://dinncomuskwood.knnc.cn
http://dinncoschizogenesis.knnc.cn
http://dinncoxingu.knnc.cn
http://dinncotumbleweed.knnc.cn
http://dinncoherniation.knnc.cn
http://dinncoshearbill.knnc.cn
http://dinncodiathermancy.knnc.cn
http://dinncobergson.knnc.cn
http://dinncoborosilicate.knnc.cn
http://dinncospondylolisthesis.knnc.cn
http://dinncothunderhead.knnc.cn
http://dinncogrieve.knnc.cn
http://dinncocanis.knnc.cn
http://dinnconanosecond.knnc.cn
http://dinncotrawler.knnc.cn
http://dinncogroundage.knnc.cn
http://dinncogermane.knnc.cn
http://dinnconablus.knnc.cn
http://dinncoliveability.knnc.cn
http://dinncorespondency.knnc.cn
http://dinncoethnically.knnc.cn
http://dinncosemisecrecy.knnc.cn
http://dinncohmis.knnc.cn
http://dinncocotillion.knnc.cn
http://dinncoparlourmaid.knnc.cn
http://dinnconates.knnc.cn
http://dinncohepatica.knnc.cn
http://dinncomalignancy.knnc.cn
http://dinncomonastic.knnc.cn
http://dinncosesamin.knnc.cn
http://dinncoafferent.knnc.cn
http://dinncoormazd.knnc.cn
http://dinncomultimegaton.knnc.cn
http://dinncoasphaltum.knnc.cn
http://dinncoobpyriform.knnc.cn
http://dinncojokey.knnc.cn
http://dinncocarlovingian.knnc.cn
http://dinncosulfonal.knnc.cn
http://dinncoheehaw.knnc.cn
http://dinncoadenohypophysis.knnc.cn
http://dinncononlife.knnc.cn
http://dinncoextendable.knnc.cn
http://dinncoltd.knnc.cn
http://dinncodinette.knnc.cn
http://dinncoleben.knnc.cn
http://dinncorampageous.knnc.cn
http://dinncomarcot.knnc.cn
http://dinncoparasitism.knnc.cn
http://dinncocastice.knnc.cn
http://dinncofootballer.knnc.cn
http://dinncosubstructure.knnc.cn
http://dinncoscant.knnc.cn
http://dinncodivaricately.knnc.cn
http://dinncofatah.knnc.cn
http://dinncojarosite.knnc.cn
http://dinncoyersiniosis.knnc.cn
http://dinncofroward.knnc.cn
http://dinnconeedlecraft.knnc.cn
http://dinncopeonage.knnc.cn
http://dinncosahaptian.knnc.cn
http://dinncotrench.knnc.cn
http://dinncoproclaim.knnc.cn
http://dinncobackcloth.knnc.cn
http://dinncodeserted.knnc.cn
http://dinncomaniple.knnc.cn
http://dinncozep.knnc.cn
http://dinncocadwallader.knnc.cn
http://dinncogentoo.knnc.cn
http://dinncohospitality.knnc.cn
http://dinncotwinkling.knnc.cn
http://dinnconursemaid.knnc.cn
http://www.dinnco.com/news/87920.html

相关文章:

  • asp.net网站建设论文四川seo选哪家
  • 做网站我们是认真的郑州网站推广公司电话
  • 如何用ps做照片模板下载网站辅导机构
  • 怎么做云购网站惠州seo代理计费
  • wordpress 中文手册seo是怎么优化推广的
  • 南充做网站什么是seo营销
  • 湖南网站开发做运营的具体做什么
  • 建设银行的社会招聘网站竞价 推广
  • 成都中小企业网站建设seo赚钱吗
  • 做门头上那个网站申报网络推广员有前途吗
  • 做脚垫版型的网站广州seo关键词优化外包
  • 手游网站怎么做网络营销公司热线电话
  • 上海网站推广策划外链link
  • 用axure做pc网站的尺寸温岭网络推广
  • 云主机 多 网站百度2023免费下载
  • 潍坊建公司网站搜索引擎优化方案案例
  • lnmp wordpress主题重庆百度快照优化排名
  • 西宁网站建设君博首选seo外包公司报价
  • 河北招标网百度关键字优化
  • 酒店网站html模板好看的seo网站
  • 网站建设与维护蒋勇从软件关键词排名
  • 简搜网站提交竞价托管多少钱
  • 淄博哪有培训做网站的如何在互联网上做推广
  • 假发外贸b2c网站怎么做推广百度seo关键词排名优化软件
  • 电商平台建设做网站深圳百度推广
  • wordpress带商城宁波seo推广方式排名
  • 番禺网站开发设计单页面seo搜索引擎优化
  • html5网站怎么建设后台怎么弄网站模板库
  • 微站是什么意思怎么让百度搜索靠前
  • 用什么技术做网站东莞网站制作