1. Пользоваться форумом на планшетах и телефонах стало удобнее благодаря Tapatalk

Подмена цветовых каналов RGB

Тема в разделе "MAXScript", создана пользователем ARToman, 26 ноя 2008.

Модераторы: Savin Denis
  1. ARToman

    ARToman Пользователь сайта

    С нами с:
    19.01.2008
    Сообщения:
    5
    Симпатии:
    0
    Баллы:
    2
    ПРОБЛЕМА: Помогите в написании фрагмента кода, который мог цветовой канал от одного изображения подменить другим каналом со второго изображения.

    ПОЯСНЕНИЕ: Допустим у нас имеется изображение в 1 пиксел, который имеет следующие параметры RGB: (100,100,100), а второе изображение (такого же размера) имеет параметры (50,225,150). Допустим, нам нужно поменять красный канал одного изображения на канал из другого изображения. Конечный результат: первое изображение имеет параметры (50,100,100).

    ЦЕЛЬ: Создать фрагмент кода для изображений любого размера.

    За помощь заранее спасибо. Жду ваших советов и рекомендаций, а также по возможности фрагмент кода для общего случая
     
  2. Protactinium

    Protactinium Пользователь сайта

    С нами с:
    03.03.2006
    Сообщения:
    27
    Симпатии:
    0
    Баллы:
    2
    Можно сделать так. Открываем два битмапа, создаем третий, в который копируем каналы из второго.
    Затем копируем в него те каналы из первого битмапа, для которых флаги chang_... установлены в true.


    dir = sysInfo.currentdir
    bmp1 = openBitMap (dir + "\bmp1.bmp")
    bmp2 = openBitMap (dir + "\bmp2.bmp")
    bmp3 = bitmap bmp1.width bmp1.height filename:(dir + "\bmp3.bmp")
    change_r = true
    change_g = false
    change_b = false
    for y=1 to bmp1.height do (
    bmp1_line = getPixels bmp1 [0,y-1] bmp1.width
    bmp3_line = getPixels bmp2 [0,y-1] bmp2.width
    for x=1 to bmp1.width do (
    if change_r do
    bmp3_line[x].r = bmp1_line[x].r
    if change_g do
    bmp3_line[x].g = bmp1_line[x].g
    if change_b do
    bmp3_line[x].b = bmp1_line[x].b
    ) -- end for
    setPixels bmp3 [0,y-1] bmp3_line
    ) -- end for
    save bmp3
    close bmp1
    close bmp2
    close bmp3
     
Модераторы: Savin Denis

Поделиться этой страницей