Convertion ps en noir et blanc

Soyez le premier à donner votre avis sur cette source.

Snippet vu 6 413 fois - Téléchargée 16 fois

Contenu du snippet

Petit exe qui permet de convertir des fichiers PS en noir et blanc (le vectoriel, pas les images).

Pour info, le ps permet ensuite de créer du pdf. Je n'ais pas trouver de librairie gratuite qui convertisse du pdf en noir et blanc. Si quelqu'un en connait une d'ailleurs, sa m'intéresse.

Source / Exemple :


Module Module1
    Public Sub main()
        'on va essayer sa : 
        'il faut chercher : # # # rgb
        'et le changer pour : 0 0 0 rbg

        'une boucle devrai suffire, g des doute pour les image...
        'aller on adapte pour faire un exe :
        'args : Nomfichier1, nomFichier2 ...

        'verification qu'il y à des argument :
        Dim f As String
        If My.Application.CommandLineArgs.Count = 0 Then
            disphelp()
            Exit Sub
        End If
        'recuperation du repertoire  temporaire :
        Dim temp As String = System.Environment.GetEnvironmentVariable("temp")

        For Each f In My.Application.CommandLineArgs

            If System.IO.File.Exists(f) Then
                'fichier temporaire :
                Dim e As Integer
                Dim temp_fich As String = temp & "\temp_ps" & e & ".ps"
                e += 1

                Dim li As New System.IO.StreamReader(f)
                Dim lio As New System.IO.StreamWriter(temp_fich, False)

                While Not li.EndOfStream
                    Dim t As String = li.ReadLine
                    If t Like "*rgb*" And Not t Like "*/rgb*" Then
                        'If Not t Like "*0 0 0 rgb*" Then
                        'bon la il faut faire une petite boucle...
                        'on prend l'index de rbg :
                        Dim fi As Boolean = False
                        Dim ind As Integer = 0
                        While Not fi
                            t = net_line(t, t.IndexOf("rgb", ind))
                            If (t.LastIndexOf("0 0 0 rgb") + 9) <> (t.LastIndexOf("rgb") + 3) Then
                                ind = t.LastIndexOf("0 0 0 rgb") + 9
                            Else : fi = True
                            End If
                        End While

                        'End If
                    End If
            lio.WriteLine(t)
                End While
                lio.Close()
                li.Close()

                'on copi le fichier 
                System.IO.File.Copy(temp_fich, f, True)
            End If
        Next

    End Sub

    Private Function net_line(ByVal l As String, ByVal i As Integer) As String

        Dim ind As Integer = i
        Dim ind2 = ind - 1
        Dim rgbfini As Boolean = False
        Dim pa As Integer = 0
        While rgbfini = False

            If (Char.IsNumber(l.Chars(ind2)) Or l.Chars(ind2) = " " Or l.Chars(ind2) = ".") And ind2 > 1 Then
                If l.Chars(ind2) = " " Then
                    pa += 1
                    If pa = 4 Then Exit While
                End If

                Console.WriteLine(l.Chars(ind2))

                ind2 -= 1
            Else
                Exit While
            End If

        End While

        If ind - 1 <> ind2 Then
            If l.Substring(ind2 - 1, ind + 2 - ind2) Like "* *" Then
                l = l.Replace(l.Substring(ind2 + 1, (ind - ind2) + 2), " 0 0 0 rgb")
            End If
        End If

        Return l
    End Function

    Sub disphelp()

        Console.WriteLine("Utilisation :")
        Console.WriteLine("Nom_du_premier_fichier nom_du_deuxieme_fichier...")
        Console.WriteLine("")
        Console.WriteLine("Les fichier sont ecrasés")

    End Sub

End Module

Conclusion :


Pour utiliser le code, utiliser une nouvelle application VB.NET type console, puis coller le code dans le module.

Cette application est utiliser dans une chaine de convertion de fichier Dessin CATIA ver pdf, elle permet dans certain cas de sortir des plans en noir et blanc. Utilisé avec GostScript et une macros vb6(catvba).

A voir également

Ajouter un commentaire

Commentaire

Messages postés
19
Date d'inscription
lundi 30 mars 2009
Statut
Membre
Dernière intervention
29 juillet 2009

Il n'existe pas le meme code pour DEPHI 7 lol ? je cherche depuis se matin du code qui me permettrai par l'appui d'un bouton de convertir mon image en noir et blanc...
Mais avec un bon seuillage que par exemple s'il y a plusieurs pixel noirs tout autour d'un seul pixel blanc ( défaut de l'image) qu'il le corrige et le transforme en pixel noir.

Quelqu'un pourrait m'aider ou m'envoyer un lien ? merki d'avance

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.