IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Shell et commandes GNU Discussion :

Snippet d'un vieux Linux Mag (HS n° 28) ne fonctionne pas (s'appuie sur cat source > fichier)


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Expert confirmé
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    11 117
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 11 117
    Par défaut Snippet d'un vieux Linux Mag (HS n° 28) ne fonctionne pas (s'appuie sur cat source > fichier)
    Bonsoir,

    j'ai trouvé ces quelques lignes en page 47 du mag cité en titre, les ai scrupuleusement recopiées, ai vérifié la présence de pnmtopng, ai fait une copie des data brutes (cat /dev/fb0 > ecran.raw) mais il doit rester un problème puisque ça s'exécute plutôt mal :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $ ./copiecran.pl 1024 768 < ecran.raw > ecran.png
    pnmtopng: 1 colors found
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    $ cat copiecran.pl
    #!/usr/bin/perl -w
    $w = shift || 320;
    $h = shift || 240;
    $pixels = $w * $h;
    open OUT, "|pnmtopng" or die "Can't pipe pnmtopng: $!\n";
    printf OUT "P6%d %d\n255\n", $w, $h;
    while ((read STDIN, $raw, 2) and $pixels--) {
        $short = unpack('S', $raw);
        print OUT pack("C3",
    	($short & 0xf800) >> 8,
    	($short & 0x7e0) >> 3,
    	($short & 0x1f) << 3);
    }
    close OUT;
    Mais le souci, c'est qu'en regardant le contenu de ecran.raw avec un éditeur hexa, tout est à 0. C'est donc ce cat /dev/fb0 > ecran.raw qui ne va pas. Je l'ai testé depuis un terminal sous X mais également dans une console pure, même résultat.

    Une idée ? Merci,

  2. #2
    Responsable Systèmes


    Homme Profil pro
    Gestion de parcs informatique
    Inscrit en
    Août 2011
    Messages
    18 256
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Gestion de parcs informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Août 2011
    Messages : 18 256
    Par défaut
    Peut-être un problème de droits ?
    Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
    Mon article sur le P2V, mon article sur le cloud
    Consultez nos FAQ : Windows, Linux, Virtualisation

  3. #3
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 651
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 651
    Par défaut
    Citation Envoyé par foetus Voir le message
    Tu te trompes
    Citation Envoyé par Jipété
    j'ai trouvé ces quelques lignes en page 47 d['un vieux Linux Mag (HS n°28)], les ai scrupuleusement recopiées[...]
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  4. #4
    Expert confirmé
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    11 117
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 11 117
    Par défaut
    Bonjour,

    Citation Envoyé par foetus Voir le message
    Tu te trompes Regarde le format Netpbm (<- lien wiki en anglais)

    Tu crées 1 image PixMap, format .ppm, dans laquelle l'image est stockée ligne par ligne et chaque couleur est stockée avec 3 octets (valeur de 0 à 255) en binaire : rouge, bleu et vert.

    Je ne crée rien du tout, je me contente de faire cat /dev/fb0 > ecran.raw.

    Mais hier j'ai été un poil trop rapide en examinant à l'éditeur hexa le fichier généré, surtout que j'avais fait une première copie d'écran avec un écran quasiment vide -- c'est pas malin, je le reconnais.

    Ce matin, mieux réveillé, j'ai commencé par remplir l'écran du contenu d'un dossier et comme ça ne suffisait pas, j'ai complété avec la sortie d'un script qui me dessine les espaces libre et occupé de mes disques avec le symbole | en vert ou rouge.
    Nom : infodisk.png
Affichages : 126
Taille : 9,6 Ko
    En examinant lentement le fichier avec l'éditeur hexa, je vois des zones remplies de AA, de 55, de FF, etc.

    Et ensuite j'appelle le script et en lui passant les valeurs de l'écran (l'auteur aurait pu préciser ce point) ça a l'air d'aller mieux.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $ ./copiecran.pl 1920 1200 < ecran.raw > ecran.png
    pnmtopng: 6 colors found
    Mais "ça a l'air" seulement, car les couleurs c'est pas ça et la résolution non plus, on dirait que tout est agrandi dans le .png de sortie, résultat le bas de l'écran n'est pas reproduit dans l'image.
    En regardant mieux, il n'y a que la moitié supérieure de l'écran qui est reproduite dans le fichier, mais difficile de faire une copie d'écran d'une console, hein,

    Bon, on ne va pas se prendre la tête avec ça (sauf pour occuper les loooongues heure de confinement), c'est juste anecdotique.

  5. #5
    Expert confirmé Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 347
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2012
    Messages : 4 347
    Par défaut
    Je ne sais pas de quand date le magazine, mais on retrouve ici: https://www.cnx-software.com/2010/07...er-screenshot/, le script perl qui précise que c'est pour du 16 bits, et dans un des commentaires utilisateurs, une version modifiée pour le 32 bits.

  6. #6
    Expert confirmé
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    11 117
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 11 117
    Par défaut
    Citation Envoyé par disedorgue Voir le message
    Je ne sais pas de quand date le magazine,
    Janvier 2007 (suis très conservateur, )

    Citation Envoyé par disedorgue Voir le message
    mais on retrouve ici: https://www.cnx-software.com/2010/07...er-screenshot/, le script perl qui précise que c'est pour du 16 bits, et dans un des commentaires utilisateurs, une version modifiée pour le 32 bits.
    Absolument parfaite, cette version modifiée pour le 32 bits ! (alors que je ne m'en sortais pas avec Gimp).
    Du coup la voilà :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    #!/usr/bin/perl -w
    $w = shift || 320;
    $h = shift || 240;
    $pixels = $w * $h;
    open OUT, "|pnmtopng" or die "Can't pipe pnmtopng: $!\n";
    printf OUT "P6%d %d\n255\n", $w, $h;
    while ((read STDIN, $raw, 4) and $pixels--) {
        $short = unpack('N', $raw);
        print OUT pack("C3",
    	($short >> 8)& 0xff,
    	($short >> 16)& 0xff,
    	($short >> 24)& 0xff);
    }
    close OUT;
    Usage :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $ ./copiecran32.pl 1920 1200 < ecran.raw > ecran32.png
    pnmtopng: 8 colors found
    Merci à tous, ,

    Nom : ecran32.jpg
Affichages : 112
Taille : 85,9 Ko
    (y a pas tout, là)

  7. #7
    Expert confirmé Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 287
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 287
    Par défaut
    Bonjour

    Pour ceux qui se demandent, avec Debian 64 bits, cette dernière méthode marche parfaitement.

    Du coup, j'ai retenté l'écriture :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    cat /dev/urandom >/dev/fb0
    Et ça marche bien également (un temps) :

    Nom : ecran.jpg
Affichages : 118
Taille : 981,6 Ko

    Et du coup, J'aimerais trouver le fichier tampon de /dev qui garde la dernière image de la dernière vidéo que je regarde. Car elle s'affiche à l'extinction du pc. Tout le monde sait que je regarde des vidéos à la gloire de Bill Gates et c'est la honte chez les linuxiens.
    À suivre.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 09/10/2019, 18h51
  2. Article dans GNU Linux Mag
    Par makowski dans le forum Contribuez
    Réponses: 0
    Dernier message: 28/11/2008, 13h57
  3. Send vers clients linux fonctionne pas
    Par aroslide dans le forum API, COM et SDKs
    Réponses: 8
    Dernier message: 11/04/2008, 07h57
  4. Réponses: 15
    Dernier message: 01/05/2007, 00h54
  5. [vieux Win 98]Options de dossiers n'apparait pas
    Par ran_hery dans le forum Windows 2000/Me/98/95
    Réponses: 1
    Dernier message: 17/05/2006, 22h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo