Routine de Chargement des fichier PCX
Routine de Chargement des fichier PCX
Bonjour,
Je viens de finir une petite routine de chargement des images au format PCX et je vous la fait partager (comme dab).
Voici l'url http://www.koakdesign.info/?url=04&num=9&val=24
Cordialement,
GallyHC
Je viens de finir une petite routine de chargement des images au format PCX et je vous la fait partager (comme dab).
Voici l'url http://www.koakdesign.info/?url=04&num=9&val=24
Cordialement,
GallyHC
Configuration : Tower: Windows 10 (Processeur: i7 "x64") (Mémoire: 16Go) (GeForce GTX 760 - 2Go) - PureBasic 5.72 (x86 et x64)
Re: Routine de Chargement des fichier PCX
N’hésité pas a teste et me faire des remontés d’informations si il y a des problèmes ou si même sa fonctionne très bien 
Cordialement,
GallyHC

Cordialement,
GallyHC
Configuration : Tower: Windows 10 (Processeur: i7 "x64") (Mémoire: 16Go) (GeForce GTX 760 - 2Go) - PureBasic 5.72 (x86 et x64)
Re: Routine de Chargement des fichier PCX
Fonctionne tres bien sous windows 7 x64
Bravo même si j'avoue je ne connaissais pas l'existence de ce format
@++

Bravo même si j'avoue je ne connaissais pas l'existence de ce format

@++
Windows 10 x64, PureBasic 5.73 x86 & x64
GPU : radeon HD6370M, CPU : p6200 2.13Ghz
GPU : radeon HD6370M, CPU : p6200 2.13Ghz
Re: Routine de Chargement des fichier PCX
Ca ne nous rajeunit pas.
J'avais oublié ce format.
J'avais oublié ce format.

Re: Routine de Chargement des fichier PCX
Oui il est pas ressent ce format
mais j'ai adapte une routine que j'avais fait en VB6 en une bonne heure. Je me suis dit que sa pouvez être utile a certain 


Configuration : Tower: Windows 10 (Processeur: i7 "x64") (Mémoire: 16Go) (GeForce GTX 760 - 2Go) - PureBasic 5.72 (x86 et x64)
Re: Routine de Chargement des fichier PCX
Merci pour ce partage ! 

~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Re: Routine de Chargement des fichier PCX
Cela me rappelle Windows 3.1 ...
Merci pour cette contribution.
Je ne l'ai pas testée, mais elle ne me semble pas portable (on ne peut insérer la fonction en l'état dans un autre code).
Je propose la modification ci-dessous (avec #PB_Any) :Sinon, il y a aussi le code suivant : http://www.purebasic.fr/english/viewtop ... 12&t=27380
Merci pour cette contribution.
Je ne l'ai pas testée, mais elle ne me semble pas portable (on ne peut insérer la fonction en l'état dans un autre code).
Je propose la modification ci-dessous (avec #PB_Any) :
Code : Tout sélectionner
;
; Load PCX Image
;
Structure TPEPCXHEADER
bytManufactor.b
bytVersion.b
bytEncoding.b
bytBitsPerPixel.b
intXMin.w
intYMin.w
intXMax.w
intYMax.w
intHDPI.w
intVDPI.w
bytColorMap.b[48]
bytReserved.b
bytNPlanes.b
intBytesPerline.w
intpalette_info.w
bytFiller.b[58]
EndStructure
Structure TPEPALLETS
bytColorR.a
bytColorG.a
bytColorB.a
EndStructure
;
Procedure.i LoadPCX(Filename.s) ; Charge une image au format PCX (numéro d'image renvoyé par la fonction, 0 si échec)
Protected Stream
Protected i.l
Protected j.l
Protected k.l
Protected bdata.a
Protected llenx.l
Protected lleny.l
Protected ltemp.l
Protected lcount.l
Protected lfllen.l
Protected lOffset.l
Protected Dim Raw.a(0)
Protected Dim Pallets.TPEPALLETS(255)
Protected header.TPEPCXHEADER, Image
;
Stream = ReadFile(#PB_Any, Filename)
If Stream
lfllen = Lof(Stream)
ReadData(Stream, header, SizeOf(header))
k = lfllen - SizeOf(header) - 768
If k <= 0
CloseFile(Stream)
ProcedureReturn #False
EndIf
Redim Raw(k)
ReadData(Stream, Raw(), k)
FileSeek(Stream, lfllen - 768)
ReadData(Stream, Pallets(), 768)
CloseFile(Stream)
If ((header\bytManufactor = 10) Or (header\bytVersion = 5) Or (header\bytEncoding = 1) Or (header\bytNPlanes = 1) Or (header\bytBitsPerPixel = 8))
llenx = header\intBytesPerline
lleny = header\intYMax - header\intYMin + 1
i = 0
ltemp = lleny
Image = CreateImage(#PB_Any, llenx, lleny)
If Image
If StartDrawing(ImageOutput(Image))
While ltemp
lOffset = 0
ltemp - 1
j = (lleny - ltemp) * llenx
While (lOffset < llenx)
bdata = Raw(i)
i + 1
If (bdata & 192) = 192
lcount = bdata & 63
lOffset + lcount
bdata = Raw(i)
i + 1
While lcount
lcount - 1
Plot(j % llenx, (j / llenx) - 1, RGB(Pallets(bdata)\bytColorR, Pallets(bdata)\bytColorG, Pallets(bdata)\bytColorB))
j + 1
Wend
Else
Plot(j % llenx, (j / llenx) - 1, RGB(Pallets(bdata)\bytColorR, Pallets(bdata)\bytColorG, Pallets(bdata)\bytColorB))
lOffset + 1
j + 1
EndIf
Wend
Wend
StopDrawing()
ProcedureReturn Image
EndIf
EndIf
EndIf
EndIf
;
EndProcedure
;
Define hWnd.l, event.l, ImagePCX.i
hWnd = OpenWindow(0, 0, 0, 800, 600, "LoadPCX", #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget | #PB_Window_SizeGadget | #PB_Window_ScreenCentered)
If hWnd <> 0
ImageGadget(0, 0, 0, 800, 600, 0)
ImagePCX = LoadPCX(OpenFileRequester("Ouvrir un fichier PCX", "", "Archive pcx|*.pcx", 0))
If ImagePCX
SetGadgetState(0, ImageID(ImagePCX))
EndIf
Repeat
event = WaitWindowEvent()
Until event = #PB_Event_CloseWindow
EndIf
Re: Routine de Chargement des fichier PCX
Bonjour gnozal,
Pourquoi dis tu qu'elle n'est pas portable, je l'ai teste sur linux (ubuntu), MacOS et Windows XP . J'ai fait une routine simple de chargment pour le moment, juste pour faire un exemple.
Cordialement,
GallyHC
Pourquoi dis tu qu'elle n'est pas portable, je l'ai teste sur linux (ubuntu), MacOS et Windows XP . J'ai fait une routine simple de chargment pour le moment, juste pour faire un exemple.
Cordialement,
GallyHC
Configuration : Tower: Windows 10 (Processeur: i7 "x64") (Mémoire: 16Go) (GeForce GTX 760 - 2Go) - PureBasic 5.72 (x86 et x64)
Re: Routine de Chargement des fichier PCX
Bonjour,GallyHC a écrit :Pourquoi dis tu qu'elle n'est pas portable, ...
j'ai utilisé le mot 'portable' au sens où on peut insérer un code (fichier include par exemple) en l'état dans un autre code sans risque de conflit.
Ce qui n'est pas le cas avec ton code, puisque tu utilises des identificateurs prédéfinis avec risque de conflit avec le programme principal. C'est pourquoi j'ai proposé une solution avec #PB_Any.
Re: Routine de Chargement des fichier PCX
Bonjour gnozal,
Ha oui dans ce cas tu as tout a fait raison et cette routine sert plus d'exemple, apres chacun en fait ce qu'il veut
et merci pour cette modification, qui peu etre utile.
Cordialement,
GallyHC
Ha oui dans ce cas tu as tout a fait raison et cette routine sert plus d'exemple, apres chacun en fait ce qu'il veut

Cordialement,
GallyHC
Configuration : Tower: Windows 10 (Processeur: i7 "x64") (Mémoire: 16Go) (GeForce GTX 760 - 2Go) - PureBasic 5.72 (x86 et x64)
Re: Routine de Chargement des fichier PCX
Bonjour gnozal ,
J'ai mis a jour avec tes modifications.
Cordialement,
GallyHC
J'ai mis a jour avec tes modifications.
Cordialement,
GallyHC
Configuration : Tower: Windows 10 (Processeur: i7 "x64") (Mémoire: 16Go) (GeForce GTX 760 - 2Go) - PureBasic 5.72 (x86 et x64)