Премини към съдържанието

Архивирана тема

Темата е твърде стара и е архивирана. Не можете да добавяте нови отговори в нея, но винаги можете да публикувате нова тема, в която да продължи дискусията. Регистрирайте се или влезте във вашия профил за да публикувате нова тема.

A.com

Програма за прехвърляне на едно изображение като алфа канал на друго изображение

Препоръчан отговор


Здравейте!

  Пиша в този раздел, защото не знам на какъв точно програмен език може да се реши проблема ми(най-вероятно на всички :) ). Сега да обясня...

Нуждая се от "програма", която да прави следното:

 

1) подавам й път до изображение, което се намира някъде из твърдите дискове. Например

D:MyTestImagestestImage.png 

 

testImage.png няма алфа канал

 

2)"програмката" проверява всички останали файлове с разширение .png, който се намират в D:MyTestImages и ако намери файл с име testImage_miauuAlpha.png(също няма алфа канал) се случва следното:

 

2.1) testImage_miauuAlpha.png се прехвърля като алфа канал на testImage.png

2.2) testImage_miauuAlpha.png се изтрива

2.3) testImage.png трябва да се презапише, но вече с добавения алфа канал. Ако презаписването е проблем, то testImage.png трябва да се изтрие и да се създаде нов файл със същото има(testImage.png), но с добавения алфа канал.

 

Имената на файловете ще са различни, но задължително файла, който ще се използва като алфа канал ще има суфикс _miauuAlpha.

 

Файловите формати, който трябва да се поддържат са png, tga, tiff.

 

Въпросната програмка(ще я нарека imgAsAlpha) ще бъде стартирана от скрипт в 3ds Max, по следния начин:

 

ShellLaunch "imgAsAlpha.exe" @"D:MyTestImagestestImage.png"

 

ShellLaunch си е стандартната команда и с нейна помощ се стартират разни приложения, като им се задава поне по един параметър. Например:

ShellLaunch "iexplorer.exe" @"c:tempreport.html"

ще отвори файла report.html в Internet Explorer,

 

Цялата тази работа си я върша и чрез скрипт, който съм си написал, но всичко става много бавно. Ако двете изображения са с размери 2160х4196 рх, времето за прехвърляне на _miauuAlpha изображението в алфа канала на основното изображение е около 25 секунди, ако се ползва пиксел по пиксел прехвърляне, и около 7 секунди ако се ползва вградена в 3ds Max команда, което пак си е много. Та цялата тази работа е за да се намали скоростта до около 1-2 секунди. Колкото по-малко(бързо), толкова по-добре.

 

От тук може да се изтеглят примерни изображения. В архива има testImage.png/tga, testImage_miauuAlpha.png/tga, result.png/tga.

 

Програмката ще се ползва само в Windows OS - XP, Vista, 7, 8.

Желателно е да не се нуждае от инсталиране на допълнителен софтуер, но ако е наложително... що помисля върху въпроса.

 

И накрая(надявам се да не е в разрез с някое правилата на форума) - готов съм да възнаградя автора на подобна програма със скромните 25€.

 

 

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

×

Информация

Поставихме бисквитки на устройството ви за най-добро потребителско изживяване. Можете да промените настройките си за бисквитки, или в противен случай приемаме, че сте съгласни с нашите условия за ползване.