AndrewSilverFox,Вы не совсем в ту тему зашли. Здесь не "как сделать", а "как найти".
По вашему вопросу здесь
http://piterhunt.ru/scripts/forum/showthread.php?t=52590&page=12 обсуждали, начиная с поста 229.
Но сначала хочу заметить, большинство вопросов по обработке надо начинать с определения правильного формата для работы. Иначе можете моментально попасть в тупик. В той же теме, по ссылке выше, в посте 36 - краткая характеристика некоторых форматов.
И есть общий закон , даже скажу ЗАКОН:
Все промежуточные действия надо проводить в форматах, которые не имеют потерь и не сжаты.
Без потерь, значит в изображение не будут внесены элементы там изначально отсутствующие.
Не сжатый, значит комп не занимается распаковкой и не загружается связанными с этими побочными процессами, типа создания временных файлов.
За это мы платим большим объёмом файлов. Но во первых эти файлы в конце работы удалим, а во вторых при больших картинках, типа 30000х30000 пикселей, Вы вообще не сможете работать с не тайловыми сжатыми форматами. Такая картинка в каком нибудь JPG будет открываться десятки минут. И что самое смешное, открытая (распакованная в оперативную память) она будет точно такого же размера, как BMP, или TIF.