Existe-t-il un moyen de sauver une image au format psd sous Delphi, non payante ?
Merci d’avance de vos réponse.
Existe-t-il un moyen de sauver une image au format psd sous Delphi, non payante ?
Merci d’avance de vos réponse.
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,
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
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 ?
Il semblerait que la Lib Graphics32 sache gérer les fichiers PSD, quelqu’un a plus d’info là dessus ?
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
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.
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;
salut
c'est peut ertre plus parlant pour comprendre le format ici
Ps tu peut aussi regarder du coté de ImageMagick
Blaise PascalNous 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.
PS : n'oubliez pas le tag
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/
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager