Аз се опитвам да програматично намаляване (загуба)размерът на файловете PNG и GIF. Като част от това трябва да се намали броят на цветовете в изображенията. Не искам да намалявам всички изображения до единична стойност на цветовете, така че това, което правя, е да получа броя на уникалните цветове в изображението, след това - разделете този номер на 2, за да намалите броя на цветовете наполовина.
Проблемът е, че това не работи. Използването на ImageMagic е прекалено бавно и не намалява размера на файла, освен ако изображението не е под няколко стотин уникални цвята.Използването на GraphicsMagick винаги води до уникална стойност на цветовете под 255, независимо колко цвята са в оригиналното изображение. с GraphicsMagick е дали има прозрачни пиксели в изображението, което замества изгубените цветове с прозрачни.
Всяка помощ би била благодарна, Благодаря.
Отговори:
1 за отговор № 1Намаляването на броя на цветовете е полезно само ако
- изображението може да използва палитра вместо да съхранява цвета за всеки пиксел
- размерът на индекса на палитри е по-малък от размера на цвят
- форматът на изображението поддържа размера на палитрата
Мисля, че можете да получите само 1-битов, 4-битов, 8-битов, така че2 цвята, 16 цвята или 256 цвята в тези формати. Мисля, че ако поискате повече, просто се съкращавате на 256. Ако поискате по-малко, то просто не използва цялата палитра.
Смятали ли сте да конвертирате в JPEG ида играете с настройката за качество? В крайна сметка ще постигнете по-добър контрол върху загубата на зърно. Недостатъкът е, ако изображенията не са снимки, но звучи като че има много цветове, така че може да са.
Може би изберете 1, 4, 8 бита, ако е близо до това, което искате и jpeg, ако има много цветове.
1 за отговор № 2
Мисля, че ImageMagick съоръжението, след което може да бъде квантуване:
http://www.imagemagick.org/Usage/quantize/
0 за отговор № 3
Първият проблем, GraphicsMagick може да бъде съставенизползвайки 8-битови, 16-битови или 32-битови квантови нива. Моята версия е компилирана на 8 бита (по подразбиране), което означава, че максималният брой цветове, които могат да бъдат присвоени на изображение, са 256 уникални цвята (3 * 3 * 2, един от сините бийтове е премахнат, "ГрафикиMagick може да обработва изображения с повече цветове от това, но при намаляване на цветовете може да намали само до 256 цвята или по-малко цветове.По-големи квантови пиксели причиняват GraphicsMagick да работи по-бавно и да изисква повече памет.Например, използвайки шестнадесет бита пиксела квантуси причини GraphicsMagick да работи с 15% до 50% по-бавно (и да вземе два пъти повече памет), отколкото когато е построен да поддържа осем-битови квантови пиксели.
Втори проблем; управление на прозрачността в PNGче аз използвах по-ранна версия на GraphicsMagick (1.1 мисля), така или иначе, когато преустроих до 1.3 този проблем вече не е налице, което ми казва, че това е било грешка в GraphicsMagick 1.1, която е причинила това.