Как подменить цвета чтобы при конвертации изображения .tga в .png всё было нормально?

from PIL import Image
import os

tga_folder = "tga_files"
png_folder = "png_files"

if not os.path.exists(png_folder):
    os.makedirs(png_folder)

for filename in os.listdir(tga_folder):
    if filename.endswith(".tga"):
        filepath = os.path.join(tga_folder, filename)
        im = Image.open(filepath)
        width, height = im.size

        pix = im.load()
        for i in range(width):
            for j in range(height):
                r, g, b = pix[i, j]
                pix[i, j] = (b, g, r)

        png_filepath = os.path.join(png_folder, os.path.splitext(filename)[0] + ".png")
        im.save(png_filepath)

print("Conversion complete")

Код выше конвертирует изображения .tga в .png, но только вот когда я конвертирую нужные изображения они получаются искажённые.

как получилось:

пример

как должно было быть(цветопередача):

пример


Ответы (1 шт):

Автор решения: S. Nick

Попробуйте:

pix[i, j] = (g, r, b)

import os
from PIL import Image


tga_folder = "D:/_Qt/__Qt/temp"                      # <---- установите свой путь
png_folder = "D:/_Qt/__Qt/temp/png"                  # <---- установите свой путь

if not os.path.exists(png_folder):
    os.makedirs(png_folder)

for filename in os.listdir(tga_folder):
    if filename.endswith(".tga"):
        filepath = os.path.join(tga_folder, filename)
        im = Image.open(filepath)
        width, height = im.size

        pix = im.load()
        for i in range(width):
            for j in range(height):
                r, g, b = pix[i, j]
                
#                pix[i, j] = (b, g, r)
                pix[i, j] = (g, r, b)                                 # <---- 

        png_filepath = os.path.join(png_folder, os.path.splitext(filename)[0] + ".png")
        im.save(png_filepath)

print("Conversion complete")

введите сюда описание изображения

→ Ссылка