/ / Нуждаете се от помощ за разбирането на опцията ImageMagick / Graphicsmagick -colors - изображение, обработка на изображения, манипулиране на изображения, imagemagick, graphicsmagick

Нуждаете се от помощ за разбирането на опцията ImageMagick / Graphicsmagick -colors - изображение, обработка на изображения, манипулиране на изображения, imagemagick, graphicsmagick

Аз се опитвам да програматично намаляване (загуба)размерът на файловете PNG и GIF. Като част от това трябва да се намали броят на цветовете в изображенията. Не искам да намалявам всички изображения до единична стойност на цветовете, така че това, което правя, е да получа броя на уникалните цветове в изображението, след това - разделете този номер на 2, за да намалите броя на цветовете наполовина.

Проблемът е, че това не работи. Използването на ImageMagic е прекалено бавно и не намалява размера на файла, освен ако изображението не е под няколко стотин уникални цвята.Използването на GraphicsMagick винаги води до уникална стойност на цветовете под 255, независимо колко цвята са в оригиналното изображение. с GraphicsMagick е дали има прозрачни пиксели в изображението, което замества изгубените цветове с прозрачни.

Всяка помощ би била благодарна, Благодаря.

Отговори:

1 за отговор № 1

Намаляването на броя на цветовете е полезно само ако

  1. изображението може да използва палитра вместо да съхранява цвета за всеки пиксел
  2. размерът на индекса на палитри е по-малък от размера на цвят
  3. форматът на изображението поддържа размера на палитрата

Мисля, че можете да получите само 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, която е причинила това.