美文网首页
从与Chatgpt一次简单程序交流,第一波AI冲击可见一斑

从与Chatgpt一次简单程序交流,第一波AI冲击可见一斑

作者: 健健康康 | 来源:发表于2023-03-17 17:28 被阅读0次

通过一次简单人机交流,第一次感受到AI智能化的水平早已不再是简单的分析检索,开始迈向分析创造,甚至更高的领域。

交流从一个简单的前端开发需求开始。
需求:生成一个页面自定义内容的页面水印效果

ME: 生成一个页面水印效果
AI:
要生成一个页面水印效果,可以使用CSS样式来实现。以下是一个简单的示例:

<!DOCTYPE html>
<html>
<head>
    <title>Page Watermark</title>
    <style>
        body {
            background-image: url('background.jpg');
            background-repeat: repeat;
        }
        .watermark {
            position: fixed;
            top: 50%;
            left: 50%;
            transform: translate(-50%, -50%);
            font-size: 5em;
            color: rgba(255, 255, 255, 0.5);
            opacity: 0.5;
            z-index: -1;
            pointer-events: none;
            -webkit-transform: rotate(-45deg);
            -moz-transform: rotate(-45deg);
            -ms-transform: rotate(-45deg);
            -o-transform: rotate(-45deg);
            transform: rotate(-45deg);
        }
    </style>
</head>
<body>
    <div class="watermark">WATERMARK</div>
</body>
</html>

在这个示例中,我们使用了一个背景图片作为页面的背景,并在页面中添加了一个水印。水印的样式通过CSS类名.watermark来定义,其中position: fixed将水印固定在页面上,top: 50%; left: 50%将水印定位在页面的中心位置,transform: translate(-50%, -50%)将水印向左上方移动50%的宽度和高度,以使其完全居中。font-size设置水印的字体大小,color设置水印的颜色,opacity设置水印的透明度,z-index设置水印的层级,pointer-events: none禁用水印的鼠标事件,以便用户可以在水印上方进行交互。最后,我们使用transform: rotate(-45deg)将水印旋转45度,以使其呈现对角线的效果。

通过调整这些CSS属性,您可以自定义水印的样式和位置,以满足您的需求。

ME: 生成一个页面水印效果 非图片
AI:以下是一个生成页面水印效果的示例代码,使用了纯CSS和JavaScript:

CSS部分:

.watermark {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: -1;
  pointer-events: none;
  font-size: 2rem;
  font-weight: bold;
  color: #ccc;
  opacity: 0.2;
  text-align: center;
  transform: rotate(-45deg);
  transform-origin: center;
}

JavaScript部分:

window.onload = function() {
  var watermark = document.createElement('div');
  watermark.className = 'watermark';
  watermark.innerText = 'Watermark Text';
  document.body.appendChild(watermark);
}

在这个示例中,我们创建了一个名为“watermark”的CSS类,它定义了水印的样式和位置。我们使用了文本作为水印,而不是图片。我们还使用了CSS的transform属性来旋转水印文本。

然后,我们使用JavaScript在页面加载时动态创建一个div元素,并将其添加到页面的body元素中。这个div元素使用了“watermark”类,因此它将显示为水印。我们还使用了innerText属性来设置水印文本。

你可以根据需要修改CSS类的样式,例如更改水印文本、字体、颜色、透明度、旋转角度等。

这次AI使用了非图片方式实现我的需求并可考虑到了我下一步的需求,就是自定义水印内容。

程序基本满足了我对页面效果的需求,后续重复测试中,AI给出了更多的不同实现方式和效果,都不够完美,但方案都是完整的可运行的。 随后对需求拆分细化提供给AI。

ME:js生成一个带自定义文字的图片

AI:
要使用JavaScript生成带自定义文字的图片,您可以使用HTML5的Canvas元素和JavaScript来实现。以下是一个简单的示例代码:

HTML代码:

<canvas id="myCanvas"></canvas>

JavaScript代码:

// 获取Canvas元素
var canvas = document.getElementById("myCanvas");

// 获取Canvas上下文
var ctx = canvas.getContext("2d");

// 设置Canvas宽度和高度
canvas.width = 400;
canvas.height = 200;

// 设置背景颜色
ctx.fillStyle = "#FFFFFF";
ctx.fillRect(0, 0, canvas.width, canvas.height);

// 设置文本样式
ctx.font = "30px Arial";
ctx.fillStyle = "#000000";

// 绘制文本
var text = "Hello, World!";
ctx.fillText(text, 50, 100);

// 将Canvas转换为图像
var img = canvas.toDataURL("image/png");

// 创建图像元素
var imgElement = document.createElement("img");

// 设置图像元素的src属性
imgElement.src = img;

// 将图像元素添加到页面中
document.body.appendChild(imgElement);

在上面的代码中,我们首先获取了Canvas元素和上下文,然后设置了Canvas的宽度和高度,并填充了白色背景。接着,我们设置了文本样式,包括字体大小和颜色,并使用fillText()方法绘制了文本。

然后,我们使用toDataURL()方法将Canvas转换为Base64编码的图像数据,并创建一个图像元素,将其src属性设置为Base64编码的图像数据。最后,我们将图像元素添加到页面中。

您可以根据需要修改文本样式和位置,以及Canvas的宽度和高度。如果您想将生成的图像保存到本地,可以使用toDataURL()方法将Canvas转换为Base64编码的图像数据,然后将其保存为图片文件。

到这里虽让AI没有给我一个完成的需求代码,但是作为一个程序员,已经可以整理出完成的需求代码。

  <!DOCTYPE html>
<html>
<head>
    <title>带水印的页面</title>
    <style>
        .watermark {
            position: fixed;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            pointer-events: none;
            z-index: 9999;
        }
        #myCanvas{
            display: none;
        }
    </style>
</head>
<body>
    <div class="watermark">
        <canvas id="myCanvas"></canvas>
    </div>
    <script>
        // 获取Canvas元素
        var canvas = document.getElementById("myCanvas");

        // 获取Canvas上下文
        var ctx = canvas.getContext("2d");

        // 设置Canvas宽度和高度
        canvas.width = 400;
        canvas.height = 200;

        // 设置背景颜色
        ctx.fillStyle = "#FFFFFF";
        ctx.fillRect(0, 0, canvas.width, canvas.height);

        // 设置文本样式
        ctx.font = "30px Arial";
        ctx.fillStyle = "#e5e5e5";

        // 绘制文本
        var text = "Hello, AI!";
        ctx.fillText(text, 50, 100);

        // 将Canvas转换为图像
        var img = canvas.toDataURL("image/png");

        document.querySelector('.watermark').style.backgroundImage =  `url(${img})`;
    </script>
</body>
</html>

你以为这就结束了 ,更惊人的还在后面,将代码输入给AI。

AI:
这段代码实现了在页面上添加带水印的效果。具体实现步骤如下:

  1. 创建一个div元素,并设置其样式为position: fixed,top: 0,left: 0,width: 100%,height: 100%。这个div元素将作为水印的容器。

  2. 在div元素中创建一个canvas元素,并设置其id为myCanvas。这个canvas元素将用于绘制水印。

  3. 获取canvas元素和其上下文对象ctx,并设置canvas的宽度和高度。

  4. 使用ctx绘制水印,包括设置背景颜色、文本样式和绘制文本。

  5. 将canvas转换为图像,并将其作为背景图片设置给水印容器div元素。

  6. 最后,将水印容器div元素添加到页面中。

ME:水印旋转45度
AI:
要将水印旋转45度,可以在绘制文本之前,使用ctx.rotate()方法将画布旋转45度,然后再绘制文本。具体实现步骤如下:

  1. 在绘制文本之前,使用ctx.translate()方法将画布的原点移动到画布中心。
ctx.translate(canvas.width / 2, canvas.height / 2);
  1. 使用ctx.rotate()方法将画布旋转45度。
ctx.rotate(Math.PI / 4);
  1. 绘制文本。
ctx.fillText(text, 0, 0);
  1. 在绘制完成后,使用ctx.rotate()方法将画布旋转回来,并使用ctx.translate()方法将画布原点移回左上角。
ctx.rotate(-Math.PI / 4);
ctx.translate(-canvas.width / 2, -canvas.height / 2);

完整的代码示例如下:

<!DOCTYPE html>
<html>
<head>
    <title>带水印的页面</title>
    <style>
        .watermark {
            position: fixed;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            pointer-events: none;
            z-index: 9999;
        }
        #myCanvas {
            display: none;
        }
    </style>
</head>
<body>
    <div class="watermark">
        <canvas id="myCanvas"></canvas>
    </div>
    <script>
        // 获取Canvas元素
        var canvas = document.getElementById("myCanvas");
        // 获取Canvas上下文
        var ctx = canvas.getContext("2d");
        // 设置Canvas宽度和高度
        canvas.width = 400;
        canvas.height = 200;
        // 设置背景颜色
        ctx.fillStyle = "#FFFFFF";
        ctx.fillRect(0, 0, canvas.width, canvas.height);
        // 设置文本样式
        ctx.font = "30px Arial";
        ctx.fillStyle = "#e5e5e5";
        // 将画布原点移动到画布中心
        ctx.translate(canvas.width / 2, canvas.height / 2);
        // 将画布旋转45度
        ctx.rotate(Math.PI / 4);
        // 绘制文本
        var text = "Hello, AI!";
        ctx.fillText(text, 0, 0);
        // 将画布旋转回来
        ctx.rotate(-Math.PI / 4);
        // 将画布原点移回左上角
        ctx.translate(-canvas.width / 2, -canvas.height / 2);
        // 将Canvas转换为图像
        var img = canvas.toDataURL("image/png");
        document.querySelector('.watermark').style.backgroundImage =  `url(${img})`;
    </script>
</body>
</html>

惊人的分析理解能力和二次修改优化能力,是时候思考该如何在AI快速优化成熟的背景下如何生活了。作为程序员,学习更多的语言?更新的语法?更多的框架?第一波AI冲击面前,独立分析思考不再是人类的优势,那该如何重构自身在工作中的核心竞争力。

相关文章

网友评论

      本文标题:从与Chatgpt一次简单程序交流,第一波AI冲击可见一斑

      本文链接:https://www.haomeiwen.com/subject/axpjrdtx.html