编写一段c语言代码,将一个图像的像素数据拷贝到另一个图像的像素数据中
时间: 2024-02-18 08:06:14 浏览: 243
好的,以下是一段 C 语言代码,实现了将一个图像的像素数据拷贝到另一个图像的像素数据中:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
struct Pixel {
int r, g, b;
};
struct Image {
int width, height;
struct Pixel* pixels;
};
void copy_image(struct Image* src, struct Image* dst) {
memcpy(dst->pixels, src->pixels, src->width * src->height * sizeof(struct Pixel));
}
int main() {
// 创建源图像
struct Image src;
src.width = 100;
src.height = 100;
src.pixels = (struct Pixel*)malloc(src.width * src.height * sizeof(struct Pixel));
// 创建目标图像
struct Image dst;
dst.width = src.width;
dst.height = src.height;
dst.pixels = (struct Pixel*)malloc(dst.width * dst.height * sizeof(struct Pixel));
// 将源图像的像素数据拷贝到目标图像中
copy_image(&src, &dst);
// 打印目标图像的像素数据
for (int i = 0; i < dst.width * dst.height; i++) {
printf("Pixel %d: (%d, %d, %d)\n", i, dst.pixels[i].r, dst.pixels[i].g, dst.pixels[i].b);
}
// 释放内存
free(src.pixels);
free(dst.pixels);
return 0;
}
```
在这段代码中,我们同样定义了一个 Pixel 结构体和一个 Image 结构体,表示像素和图像。然后,我们定义了一个 copy_image 函数,用于将源图像的像素数据拷贝到目标图像的像素数据中。最后,我们在 main 函数中创建了源图像和目标图像,调用 copy_image 函数将源图像的像素数据拷贝到目标图像中,并打印了目标图像的像素数据。最后,我们释放了内存,避免内存泄漏。
阅读全文