c语言图片中心圆形扩散,纯css3实现圆形从中心向四周扩散动画效果

网上太多抄袭的demo,但是都没有很好的效果,所以自己实现了一个,留给需要的人,话不多说 直接上代码吧。

css3动画圆波扩散效果(红色预警demo)

@keyframes warn1 {

0% {

transform: scale(0.3);

-webkit-transform: scale(0.3);

opacity: 0.0;

}

25% {

transform: scale(0.3);

-webkit-transform: scale(0.3);

opacity: 0.1;

}

50% {

transform: scale(0.3);

-webkit-transform: scale(0.3);

opacity: 0.3;

}

75% {

transform: scale(0.5);

-webkit-transform: scale(0.5);

opacity: 0.5;

}

100% {

transform: scale(0.8);

-webkit-transform: scale(0.8);

opacity: 0.0;

}

}

.container {

position: relative;

width: 120px;

height: 120px;

margin: auto;

}

/* 产生动画(向外扩散变大)的圆

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
实现图片圆形扩散的关键在于对图像进行处理,这里我们可以使用OpenCV库来实现。下面是一个简单的C语言代码实现: ```c #include <opencv2/opencv.hpp> #include <iostream> #include <cmath> using namespace cv; using namespace std; int main() { Mat img = imread("image.jpg"); // 读取图像 if (img.empty()) { cout << "Failed to load image!" << endl; return -1; } // 将图像转为灰度图 Mat grayImg; cvtColor(img, grayImg, COLOR_BGR2GRAY); // 获取图像中心点 int cx = img.cols / 2; int cy = img.rows / 2; // 定义最大半径 int maxRadius = sqrt(pow(cx, 2) + pow(cy, 2)); // 定义扩散速度 int speed = 2; // 循环绘制 for (int r = 1; r <= maxRadius; r += speed) { Mat dst = Mat::zeros(img.size(), img.type()); circle(dst, Point(cx, cy), r, Scalar(255, 255, 255), -1); // 将与原图像进行按位与操作,使圆形扩散效果呈现出来 Mat result; bitwise_and(grayImg, dst, result); imshow("Image", result); waitKey(50); } waitKey(0); return 0; } ``` 代码执行过程中,首先读取一张名为“image.jpg”的图片,然后将其转为灰度图,并获取其中心点。接着定义一个最大半径以及扩散速度,循环绘制,并将与原图像进行按位与操作,使圆形扩散效果呈现出来。 需要注意的是,代码中使用了OpenCV库进行图像处理,因此需要在编译时链接该库。如果你使用的是gcc编译器,可以通过以下命令进行编译: ``` g++ -o main main.cpp `pkg-config --cflags --libs opencv` ``` 其中,main表示编译生成的可执行文件名,main.cpp表示源代码文件名,`pkg-config --cflags --libs opencv`表示链接OpenCV库。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值