将rgba888的图片转换成rgb888图片的C代码
时间: 2023-10-02 17:08:23 浏览: 151
以下是将RGBA8888格式的图片转换为RGB888格式的图片的C代码:
```c
void rgba8888_to_rgb888(unsigned char *rgba, unsigned char *rgb, int width, int height) {
int i, j, k, n;
n = width * height;
for (i = 0, j = 0; i < n; i++, j += 4) {
rgb[i * 3] = rgba[j];
rgb[i * 3 + 1] = rgba[j + 1];
rgb[i * 3 + 2] = rgba[j + 2];
}
}
```
其中,`rgba`为输入的RGBA8888格式的图片数据,`rgb`为输出的RGB888格式的图片数据,`width`和`height`表示图片的宽度和高度。在函数中,我们通过循环遍历每个像素点,将RGBA8888的每四个字节中的前三个字节(即R、G、B分量)依次存入RGB888格式的图片数据中。
相关问题
怎样将rgba888图片去掉a值C简洁代码
可以使用PIL库来实现,具体代码如下:
```python
from PIL import Image
# 打开图片
img = Image.open('image.png')
# 将图片转换成RGB模式
img = img.convert('RGB')
# 保存图片
img.save('image_without_alpha.png')
```
其中,`image.png`是原始图片路径,`image_without_alpha.png`是去掉alpha通道后保存的图片路径。
rgba转换成rgb
要将RGBA格式的图片转换为RGB格式,可以使用以下方法:
1. 使用OpenCV库进行转换。首先,使用cv2.imread()函数读取图片,并设置参数为1以保持彩色图像。然后,使用cv2.cvtColor()函数将图像从BGRA色彩空间转换为BGR色彩空间。最后,使用cv2.imwrite()函数将转换后的图像保存为新的文件夹中的RGB格式图像。以下是示例代码:
```python
import os
import cv2
def convert_rgba_to_rgb(file_path, out_path):
for filename in os.listdir(file_path):
img = cv2.imread(file_path+'/'+filename, 1)
rgb_img = cv2.cvtColor(img, cv2.COLOR_BGRA2BGR)
cv2.imwrite(out_path + '/' + filename, rgb_img)
file_path = "C:/Users/lenovo/Desktop/1" # 输入文件夹
os.mkdir("C:/Users/lenovo/Desktop/2") # 建立新的目录
out_path = "C:/Users/lenovo/Desktop/2" # 设置为新目录为输出文件夹
convert_rgba_to_rgb(file_path, out_path)
```
2. 使用PIL库进行转换。首先,使用Image.open()函数打开图片。然后,使用convert()函数将图像转换为RGB模式。最后,使用save()函数保存转换后的图像为新的文件夹中的RGB格式图像。以下是示例代码:
```python
from PIL import Image
def convert_rgba_to_rgb(work_path, work_path_new):
count = 0
for i in range(21):
im = Image.open(work_path + "\\" + str(count) + ".jpg")
image = im.convert('RGB')
image.save(work_path_new + "\\" + str(count) + ".jpg")
count += 1
work_path = r'C:\Users\Administrator\Desktop\project\3'
work_path_new = r"C:\Users\Administrator\Desktop\project\3_new"
convert_rgba_to_rgb(work_path, work_path_new)
```
以上两种方法都可以将RGBA格式的图片转换为RGB格式,并保存在新的文件夹中。
#### 引用[.reference_title]
- *1* [python图片RGBA转RGB](https://blog.csdn.net/SiuooooBoom/article/details/117236680)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item]
- *2* [RGBA 转 RGB](https://blog.csdn.net/felix86/article/details/6679372)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item]
- *3* [批量将RGBA图片转换成RGB格式](https://blog.csdn.net/qq_44666320/article/details/126703551)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]
阅读全文