Посмотрите на коллекцию Netpbm . Он содержит более 300 инструментов и поддерживает сотни графических форматов. Вы можете легко поэкспериментировать с процессом, который вы хотите выполнить, используя инструменты один за другим, а затем связать их вместе в сценарий. Это открытый исходный код, поэтому, если вы хотите получить максимальную производительность, вы можете даже собрать вместе код, который вас интересует, в отдельной программе.
Обычно вы работаете с netpbm, комбинируя инструменты в конвейер. Таким образом, вы бы использовали pamscale для масштабирования вашего изображения и pamcomp для объединения результата с водяным знаком. Если водяной знак меняется в зависимости от каждого изображения, вы можете использовать pbmtext для его создания.