Magic X4 Cropper

Vous avez développé un logiciel en PureBasic et vous souhaitez le faire connaitre ?
Avatar de l’utilisateur
Ar-S
Messages : 9476
Inscription : dim. 09/oct./2005 16:51
Contact :

Magic X4 Cropper

Message par Ar-S »

Image

J'ai créé ce soft pour un client qui avait ce besoin spécifique.
Il scanne des centaines de photos, du coup je lui ai fait un logiciel pour extraire les 4 images et les sauver indépendamment.
Si ça peu vous servir.

Fonctionnement:

- Glissez déposé l'image sur le soft
- Ensuite dans le sens des aiguilles d'une montre, CLIC GAUCHE (voir gif ci dessus):
1- Coté bas droite de l'image 1
2- Coté bas gauche de l'image 2
3 - Coté haut gauche de l'image 3
4- Coté haut droit de l'image 4

Si vous êtes satisfait de votre sélection, faire un clic droit sinon refaite un clic gauche pour recommencer vos selections.

Téléchargement : http://share.ldvmultimedia.com/Magic_X4_Cropper.zip
~~~~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
Avatar de l’utilisateur
Zorro
Messages : 2185
Inscription : mar. 31/mai/2016 9:06

Re: Magic X4 Cropper

Message par Zorro »

t'as pas reussi a le faire en mode automatique ?
Image
Image
Site: http://michel.dobro.free.fr/
Devise :"dis moi ce dont tu as besoin, je t'expliquerai comment t'en passer"
Avatar de l’utilisateur
Ar-S
Messages : 9476
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Magic X4 Cropper

Message par Ar-S »

Zorro a écrit :t'as pas reussi a le faire en mode automatique ?
Non car ses scans génère un fond blanc... vraiment pas blanc.. Trop de variations
Mais il est déjà ravi.
~~~~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
Avatar de l’utilisateur
case
Messages : 1527
Inscription : lun. 10/sept./2007 11:13

Re: Magic X4 Cropper

Message par case »

pas moyen d'ajouter une tolérance pour la blancheur ?
par exemple tu surexpose l'image donc tu sature tout vers le blanc de 5,10,30% reglable avec un slider ca devrais passer pour des images comme ca
ImageImage
Avatar de l’utilisateur
Ar-S
Messages : 9476
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Magic X4 Cropper

Message par Ar-S »

Le truc c'est que le gars scan des très vieilles et moins vieilles photos, du coup faut les altérer le moins possible.
Paramètre important, il n'est pas doué du tout en info... Du coup l'étape slider le temps de régler la tolérance sur chaque image reviendra à surement perdre plus de temps que
LClic Lclic Lclic Lclic Rclic. Et ça évitera les erreurs de découpe en cas d'image contenant aussi du blanc dans les images.
Sur un bon fond blanc j'avais le prog qui allait bien, mais les tests sur les images scannées n'étaient pas concluants. Cette méthode est du coup un bon équilibre.
Ce code est plus simple bien que je me sois un peu pris le choux aussi pour ce qui est de réduire ou pas la Gui selon la taille initiale des images..
C'est du bénévolat donc je veux pas non plus y passer ma vie. (enfin je lui ai dit de me filer ce qu'il veut si le soft lui est utile).
~~~~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
Avatar de l’utilisateur
case
Messages : 1527
Inscription : lun. 10/sept./2007 11:13

Re: Magic X4 Cropper

Message par case »

sauve l'image dans le même répertoire que le code
Image

en haut a gauche l'image d'origine, j'ai fais exprès d'avoir un blanc contenant une couleur très clair peu visible
en bas a gauche la mème image éclaircie et j'ai pris du jpg pour les artefacts dégueulasses de compression
(les images de droite sont la pour montrer le nettoyage avant après plus facilement)
a gauche de la première image la même assombrie tu verra les traits très clairs mais pas blancs apparaitre clairement
en dessous l'image éclaircie puis assombrie dans la même mesure

si ça peux aider :)

ensuite pour la découpe bien sur tu découpe l'image d'origine hein pas les modifiées

Code : Tout sélectionner

UseJPEGImageDecoder()
Global main=OpenWindow(#PB_Any,0,0,1920,1080,"")
Global ref=LoadImage(#PB_Any,"Image1.jpg")
Global dark=CreateImage(#PB_Any,640,480)
Global dark2=CreateImage(#PB_Any,640,480)
Global light=CreateImage(#PB_Any,640,480)
Global can=CanvasGadget(#PB_Any,0,0,1920,1080)

Procedure getmem(ID) ; copie une image dans la memoire pour y effectuer des operations avec peek et poke :) 
	ImageID=  ImageID(id)
	Hdc = CreateCompatibleDC_ ( GetDC_ ( ImageID ))
	If HDC
		bmi.BITMAPINFO
		bm.BITMAP
		GetObject_ ( ImageID , SizeOf(BITMAP), @bm.BITMAP)
		bmi\bmiHeader\biSize = SizeOf(BITMAPINFOHEADER)
		bmi\bmiheader\biWidth = bm\bmWidth
		bmi\bmiheader\biHeight = bm\bmHeight
		bmi\bmiheader\biPlanes = 1
		bmi\bmiheader\biBitCount = 32
		bmi\bmiheader\biCompression = #BI_RGB
		HList = AllocateMemory (bm\bmWidth*bm\bmHeight*4)
		GetDIBits_ (hDC, ImageID ,0,bm\bmHeight,HList,bmi, #DIB_RGB_COLORS ) 	
		ProcedureReturn HList
	EndIf	
EndProcedure
Procedure putmem(id,mem) ;copie une zone memoire dans une image existante
	ImageID=  ImageID(id)
	Hdc = CreateCompatibleDC_ ( GetDC_ ( ImageID ))
	If HDC
		bmi.BITMAPINFO
		bm.BITMAP
		GetObject_ ( ImageID , SizeOf(BITMAP), @bm.BITMAP)
		bmi\bmiHeader\biSize = SizeOf(BITMAPINFOHEADER)
		bmi\bmiheader\biWidth = bm\bmWidth
		bmi\bmiheader\biHeight = bm\bmHeight
		bmi\bmiheader\biPlanes = 1
		bmi\bmiheader\biBitCount = 32
		bmi\bmiheader\biCompression = #BI_RGB
		SetDIBits_ (hDC, ImageID ,0,bm\bmHeight,mem,bmi, #DIB_RGB_COLORS ) 			
	EndIf
EndProcedure
Procedure saturate(memo,satu)  
  For sat=0 To MemorySize(memo)Step 4
    r=PeekB(memo+sat)&$ff   + satuhttp://www.purebasic.fr/french/posting.php?mode=reply&f=8&t=16632
    v=PeekB(memo+sat+1)&$ff + satu
    b=PeekB(memo+sat+2)&$ff + satu       
    If r>255 : r=255 :EndIf
    If v>255 :v=255 :EndIf
    If b>255 :b=255 :EndIf
    If r<0 : r=0 : EndIf
    If v<0 : v=0 : EndIf
    If b<0 : b=0 : EndIf
 PokeB(memo+sat,r)    
 PokeB(memo+sat+1,v)    
 PokeB(memo+sat+2,b)    
  Next    
  EndProcedure

; crée un buffer contenant l'image



; light original image
buffer.i=getmem(ref)
saturate(buffer,20)
putmem(light,buffer)
FreeMemory(buffer)
; darken lighten image
buffer.i=getmem(light)
saturate(buffer,-200)
putmem(dark,buffer)
FreeMemory(buffer)
; darken original image
buffer.i=getmem(ref)
saturate(buffer,-200)
putmem(dark2,buffer)
FreeMemory(buffer)



StartDrawing(CanvasOutput(can))
DrawImage(ImageID(ref),0,0)
DrawImage(ImageID(dark2),640,0)
DrawImage(ImageID(light),0,480)
DrawImage(ImageID(dark),640,480)

StopDrawing()
Repeat
  
  ev=WaitWindowEvent()
Until ev=#PB_Event_CloseWindow
ImageImage
Avatar de l’utilisateur
Ar-S
Messages : 9476
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Magic X4 Cropper

Message par Ar-S »

Merci Case, je regarde ça dès que possible, en attendant, j'ai corrigé un bug de mon prog.
Lien mis à jour.
~~~~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
Tonio
Messages : 95
Inscription : ven. 07/avr./2017 14:49
Localisation : Sud Est

Re: Magic X4 Cropper

Message par Tonio »

Bonsoir

Excellent ce petit logiciel et merci du partage
Répondre