公告:网站目录为广大站长提供免费收录网站服务,点击右上角注册登录即可免费发布,快审10元/站(免做友链且永久收录)。8年老站专注技术导航!

点击这里在线咨询客服
新站提交
  • 网站:12722
  • 待审:262
  • 小程序:18
  • 文章:519
  • 会员:557

333

自动获取文章背景图片,字体颜色不变
自动获取文章背景图片,字体颜色不变
33 333
<style>  
        #combined-image {  
            display: block;  
            margin: 0 auto; /* 水平居中 */  
            max-width: 100%; /* 响应式宽度 */  
            height: auto;  
        }  
    </style>  <!-- 假设这是通过帝国CMS标签获取的文章标题 -->  
<div id="article-title">[!--pagetitle--]</div>  
  
<!-- 仅用于显示合成后的新图片 -->  
<img id="combined-image" src="" alt="Combined Image">  
  
<script type="text/javascript">  
    window.onload = function() {  
        createCombinedImage();  
    };  
  
    function createCombinedImage() {  
        // 获取文章标题  
        var title = document.getElementById('article-title').textContent.trim();  
          
        // 假设这是通过帝国CMS标签获取的图片列表(这里用硬编码的URL代替)  
        var imageUrls = [  
            'e/data/tmp/images/15.jpg', // 替换为实际的图片URL 1  
            'e/data/tmp/images/15.jpg'  // 替换为实际的图片URL 2  
        ];  
          
        if (imageUrls.length < 2) {  
            alert('至少需要两张图片才能合成!');  
            return;  
        }  
          
        // 随机选择一张图片  
        var randomIndex = Math.floor(Math.random() * imageUrls.length);  
        var imgUrl = imageUrls[randomIndex];  
          
        // 加载图片并创建Canvas进行合成  
        var img = new Image();  
        img.onload = function() {  
            var canvas = document.createElement('canvas');  
            canvas.width = 600; // 设定Canvas宽度  
            canvas.height = 350; // 设定Canvas高度  
            var ctx = canvas.getContext('2d');  
              
            // 绘制图片到Canvas上  
            ctx.drawImage(img, 0, 0, canvas.width, canvas.height);  
              
            // 绘制标题文本  
            drawText(ctx, title, canvas.width, canvas.height);  
              
            // 将Canvas内容转换为图片URL  
            var combinedImageUrl = canvas.toDataURL('image/png');  
              
            // 将合成后的图片URL设置到img元素上  
            document.getElementById('combined-image').src = combinedImageUrl;  
        };  
        img.src = imgUrl;  
    }  
      
    function drawText(ctx, text, width, height) {  
        ctx.font = '25px Arial'; // 设置字体样式  
        ctx.fillStyle = 'white'; // 设置文本颜色  
        ctx.textAlign = 'center'; // 设置文本水平居中  
        ctx.textBaseline = 'middle'; // 设置文本垂直居中  
          
        // 绘制文本背景  
        var textMetrics = ctx.measureText(text);  
        var textWidth = textMetrics.width;  
        var textHeight = 30; // 假设文本行高为20px  
        var textX = width / 2; // 文本水平居中位置  
        var textY = height / 2; // 文本垂直居中位置  
        var backgroundWidth = textWidth + 10; // 背景宽度加上内边距  
        var backgroundHeight = textHeight + 10; // 背景高度加上内边距  
        ctx.fillStyle = 'black'; // 设置背景颜色为浅灰色半透明  
        ctx.fillRect(textX - backgroundWidth / 2, textY - backgroundHeight / 2, backgroundWidth, backgroundHeight);  
          
        // 绘制文本到图片上  
        ctx.fillText(text, textX, textY);  
    }  
</script>  
333

分享到:

  admin

注册时间:

网站:0 个   小程序:3 个  文章:12 篇

  • 2722

    网站

  • 18

    小程序

  • 519

    文章

  • 557

    会员

赶快注册账号,推广您的网站吧!
热门网站
最新入驻小程序

潇湘书院2022-09-19

原创言情小说,扶摇,楚乔传改编小说

热点热评(图文)2022-09-19

热点热评 介绍 结合当前路人皆知

好球约战2020-06-16

“好球约战”聚集了您周围发布的

演出票2020-06-16

本站是国内首家集小程序资讯 小

京东云小店2020-06-16

云小店是一款社交电商的应用产品

管家家2020-06-16

随着消费需求、数字化环境、服务