2012-09-14 12 views
15

Ho un'immagine in .jpg format con white background color. Voglio rimuovere il colore di sfondo bianco in trasparente in Imagemagick. Ho provato molti modi, ma lo sfondo bianco non può essere rimosso. Qualcuno può aiutarmi a risolvere questo.Come sostituire il colore di sfondo bianco con trasparente di un'immagine in ImageMagick?

+0

Cosa hai provato? Potrebbe essere necessario convertirlo prima in modalità "indexed color" (ad es. PNG). Indipendentemente da come lo fai, puoi aspettarti che gli artefatti appaiano al confine tra immagine e trasparente. – msw

+0

trasparente al bianco: http://stackoverflow.com/questions/2322750/replace-transparency-in-png-images-with-white-background –

risposta

24

In primo luogo, è necessario convertire il formato immagine da .jpg in formato .png, perché JPEG non supporta la trasparenza. Quindi utilizzare il comando:

convert image1.png -fuzz 20% -transparent white result.png

L'opzione -fuzz permette la deviazione percentuale specificata dal colore bianco puro da convertire trasparente pure. Questo è utile, ad esempio, quando l'immagine contiene rumore o sfumature sottili.

+13

Cosa c'era di sbagliato nella mia risposta? (Non hai detto nella tua domanda che hai richiesto un certo grado di sfocatura, né hai fornito un file di esempio - quindi era impossibile indovinare ...) –

+6

Non è necessario convertire i file * prima * da JPEG a PNG e solo * quindi * convertire da bianco a trasparente. Il mio comando fa tutto in * one * go. –

+2

@KurtPfeifle Capisco che avrebbe potuto aiutarti a migliorare la tua risposta invece di rispondere alla sua; ma senza '-fuzz 20%' non ha funzionato qui; Penso che la tua risposta potrebbe essere migliorata con l'opzione fuzz btw, non vedo assolutamente alcun problema nel farlo; anche la sua risposta non è completamente giusta in quanto potrei passare direttamente da un jpg a un risultato png; e alla fine entrambe le risposte portano un problema serio; il colore di sfondo del contorno (che qui è nero) diventa trasparente; ma anche tutto il nero all'interno dell'immagine reale diventa trasparente; ciò che ha davvero incasinato la mia immagine ...:> –

45

Non si può avere trasparenti i colori di sfondo nei vostri file JPEG. Il formato file JPEG non supporta la trasparenza.

Se avete bisogno di sfondo trasparente, è necessario convertire il formato JPEG per

  • o PNG (di alta qualità, la dimensione del file, eventualmente, più grande di JPEG)
  • o GIF (nel caso in cui si può tollerare di bassa qualità e di un gamma di massimo 255 colori).

comando Esempio:

convert your.jpg -transparent white your.png 
+1

Devo aver letto il tuo post, e non il tuo comando vero e proprio; ho pensato che stavi suggerendo "conversione manuale" scusa per il confusione, ho votato la tua risposta. Non ho molta familiarità con la sintassi, ma sono con le sue capacità. – Jim22150

6

Ho appena scoperto una cosa molto bella!

magicwand 1,1 -t 20 -f image -r outside -m overlay -o 0 image.jpg imgOutput.png 

Si tratta di uno script bash Fred Weinhaus che può essere scaricato da here (per uso non commerciale solo). Inoltre ci sono circa 250 script !! e questo è fantastico! ha fatto esattamente il trucco, per rimuovere tutti gli sfondi mantenendo inalterati i punti dell'immagine interna!

Alla sua pagina, ci sono diverse immagini come esempi in modo da scegliere quello che è necessario mettere sulla riga di comando!

La posizione iniziale è una 1,1 guesser generale dicendo tutto il contorno è di sfondo.

Prestare attenzione che l'uscita deve essere ".png"

+0

assolutamente incredibile, grazie! – dsummersl

1

Questa è la mia soluzione senza Magicwand (sostituire magick da convert per im < 7.0):

magick img.png -fuzz 20% -fill none -draw "alpha 1x1 floodfill" result.png 
+1

in ubuntu imagemagick v8: 6.7.7.10 - errore 'convert.im6: definizione primitiva del disegno non conforme 'alpha' @ error/draw.c/DrawImage/3158., qualche idea? –

+0

Ecco il comando giusto per imagemagick 6: convert "./input.jpg" -fill none -draw 'color 1,1 floodfill' output.png –

Problemi correlati