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

Delphi Discussion :

Sauver en .psd de Photoshop ?


Sujet :

Delphi

  1. #1
    Membre éprouvé Avatar de der§en
    Homme Profil pro
    Chambord
    Inscrit en
    Septembre 2005
    Messages
    765
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : Chambord
    Secteur : Transports

    Informations forums :
    Inscription : Septembre 2005
    Messages : 765
    Points : 960
    Points
    960
    Par défaut Sauver en .psd de Photoshop ?
    Existe-t-il un moyen de sauver une image au format psd sous Delphi, non payante ?

    Merci d’avance de vos réponse.

  2. #2
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    10 730
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 730
    Points : 15 132
    Points
    15 132
    Par défaut
    Salut,

    première approche : si tu sais comment piloter The Gimp depuis Delphi ça peut s'envisager (puisque je viens de tester à la main sous Linux l'ouverture d'un .png puis son exportation en .psd et ensuite, depuis une machine virtuelle et mis à part un curieux message qu'il faut accepter,
    Nom : message_toshop.png
Affichages : 154
Taille : 5,0 Ko
    l'ouverture du .psd y fonctionne -- mais c'est peut-être ma version, qui est très vieille, dans un aussi vieux Win2k).

    Sinon, faut trouver une librairie qui le ferait. Maintenant, il paraitrait que The Gimp est scriptable, mais je n'ai jamais joué avec ça.
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

  3. #3
    Membre éprouvé Avatar de der§en
    Homme Profil pro
    Chambord
    Inscrit en
    Septembre 2005
    Messages
    765
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : Chambord
    Secteur : Transports

    Informations forums :
    Inscription : Septembre 2005
    Messages : 765
    Points : 960
    Points
    960
    Par défaut
    Bon, après pas mal de recherches, j’ai trouvé https://imaginglib.sourceforge.io/ qui sait lire et écrire des fichiers .PSD.

    Il me reste plus qu’à voir s’il sait gérer les layers ?

  4. #4
    Membre éprouvé Avatar de der§en
    Homme Profil pro
    Chambord
    Inscrit en
    Septembre 2005
    Messages
    765
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : Chambord
    Secteur : Transports

    Informations forums :
    Inscription : Septembre 2005
    Messages : 765
    Points : 960
    Points
    960
    Par défaut
    Il semblerait que la Lib Graphics32 sache gérer les fichiers PSD, quelqu’un a plus d’info là dessus ?

  5. #5
    Membre expert
    Avatar de pprem
    Homme Profil pro
    MVP Embarcadero - formateur&développeur Delphi, PHP et JS
    Inscrit en
    Juin 2013
    Messages
    1 876
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : MVP Embarcadero - formateur&développeur Delphi, PHP et JS
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 876
    Points : 3 611
    Points
    3 611
    Par défaut
    Citation Envoyé par der§en Voir le message
    Il semblerait que la Lib Graphics32 sache gérer les fichiers PSD, quelqu’un a plus d’info là dessus ?
    Le problème c'est aussi quelle version de PSD et ensuite pourquoi faire du PSD si c'est juste pour une image que tout logiciel sachant ouvrir un PSG pourra ouvrir en JPEG ou PNG.

  6. #6
    Membre éprouvé Avatar de der§en
    Homme Profil pro
    Chambord
    Inscrit en
    Septembre 2005
    Messages
    765
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : Chambord
    Secteur : Transports

    Informations forums :
    Inscription : Septembre 2005
    Messages : 765
    Points : 960
    Points
    960
    Par défaut
    Je dois fournir un psd à un ami utilisant adobe publisher contenant une image de fond + plusieurs layers contenant du graphisme supplémentaire !

    Perso, le PNG me va bien mais hélas pas lui, donc si vous avez des suggestions sur comment produire un psd avec plusieurs layers, je suis preneur

  7. #7
    Membre expert
    Avatar de pprem
    Homme Profil pro
    MVP Embarcadero - formateur&développeur Delphi, PHP et JS
    Inscrit en
    Juin 2013
    Messages
    1 876
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : MVP Embarcadero - formateur&développeur Delphi, PHP et JS
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 876
    Points : 3 611
    Points
    3 611
    Par défaut
    Dans ce cas, s'il lui faut des calques en plus du Background c'est une autre histoire.

    Si tu es à l'aise avec les streams ou les fichiers binaires tu peux jeter un oeil à https://docs.fileformat.com/image/psd/ et faire tout toi-même.

  8. #8
    Membre actif
    Homme Profil pro
    libre
    Inscrit en
    Juin 2019
    Messages
    205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : libre

    Informations forums :
    Inscription : Juin 2019
    Messages : 205
    Points : 292
    Points
    292
    Par défaut
    ce code basique pour convertir une image bmp en psd, il vous reste d'implémenter les codes pour les calques et la compression en théorie ça ne devrait pas être compliqué.

    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    function Swp4(c:Integer):Integer;
    asm
        BSwap eax
    end;
     
    procedure SavePSD(ABmp:TBitmap);
    type
      TRGBArray=array[0..$FFFFF] of TRGBTriple;// TRGBQuad
    const
      BOM: Ansistring = '8BPS';
    var
     I,J, n :integer;
     mR,mG,mB:array of byte;
     rH,rW:integer;
     P:^TRGBArray;
     FS:TMemoryStream;
     Len:integer;
     procedure BE_Int16(c:short);
     begin
       c:=Swap(c);
       FS.Write(c,2);
     end;
     procedure BE_Int32(c:Integer);
     begin
       c:=Swp4(c);
       FS.Write(c,4);
     end;
    begin
     ABmp.PixelFormat := pf24BIT;
     rH:=ABmp.Height;
     rW:=ABmp.Width;
     FS:=TMemoryStream.Create;
     // Header
     FS.Write(Pointer(BOM)^,4);
     BE_Int16(1); // always 1
     BE_Int32(0);BE_Int16(0);// reserved
     BE_Int16(3);// channels
     BE_Int32(rH); // Height
     BE_Int32(rW); // Width
     BE_Int16(8);// bitDepth
     BE_Int16(3);// colormode RGB = 3
     // color mode Table
      BE_Int32(0);
     // resources
      BE_Int32(0);
     // layer
      BE_Int32(0);
     
     //image
     BE_Int16(0);// compression
     
     Len := rH * rW;
     Setlength(mR,Len);
     Setlength(mG,Len);
     Setlength(mB,Len);
     n := 0;
     for J:= 0 to rH-1 do
     begin
         P:=ABmp.ScanLine[J];
         for I:= 0 to rW-1 do
         with P[I] do
         begin
           mR[n]:=rgbtRed;
           mG[n]:=rgbtGreen;
           mB[n]:=rgbtBlue;
           Inc(n);
         end;
     end;
     FS.Write(Pointer(mR)^,Len);
     FS.Write(Pointer(mG)^,Len);
     FS.Write(Pointer(mB)^,Len);
     
     FS.SaveToFile('C:\test.psd');
     FS.Free;
    end;

  9. #9
    Expert confirmé
    Avatar de anapurna
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    3 421
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 421
    Points : 5 820
    Points
    5 820
    Par défaut
    salut

    c'est peut ertre plus parlant pour comprendre le format ici


    Ps tu peut aussi regarder du coté de ImageMagick
    Nous souhaitons la vérité et nous trouvons qu'incertitude. [...]
    Nous sommes incapables de ne pas souhaiter la vérité et le bonheur, et sommes incapables ni de certitude ni de bonheur.
    Blaise Pascal
    PS : n'oubliez pas le tag

  10. #10
    Expert confirmé Avatar de sergio_is_back
    Homme Profil pro
    Responsable informatique, développeur tout-terrain
    Inscrit en
    Juin 2004
    Messages
    1 086
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Responsable informatique, développeur tout-terrain
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 086
    Points : 5 606
    Points
    5 606
    Par défaut
    Citation Envoyé par anapurna Voir le message
    salut

    c'est peut ertre plus parlant pour comprendre le format ici


    Ps tu peut aussi regarder du coté de ImageMagick
    Chercher aussi du coté de The Gimp! qui sait normalement gérer à peu près les fichiers PSD et est scriptable également : https://www.gimp.org/tutorials/Basic_Batch/

Discussions similaires

  1. Réponses: 4
    Dernier message: 24/02/2018, 15h35
  2. Photoshop, sauvegarde autre que .psd
    Par marcel marie dans le forum Imagerie
    Réponses: 3
    Dernier message: 16/08/2011, 09h30
  3. Export PSD vers css sur photoshop
    Par gilbertbicot dans le forum Outils
    Réponses: 1
    Dernier message: 19/01/2010, 09h46
  4. Sauver une StringGrid dans un fichier
    Par Rodrigue dans le forum C++Builder
    Réponses: 2
    Dernier message: 10/12/2003, 14h52
  5. sauver une base
    Par phil_java dans le forum Administration
    Réponses: 3
    Dernier message: 07/03/2003, 17h08

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