Page 2 sur 2

Re: [OK ] découpe automatique d'images

Publié : sam. 30/avr./2016 17:08
par falsam
Joli code Fig. Merci du partage.

Un petit commentaire : Le code plante si lors du choix de l'image on renonce à le faire.

Re: [OK ] découpe automatique d'images

Publié : sam. 30/avr./2016 17:11
par Fig
Merci falsam.
Pour le reste... ce n'est pas un logiciel.
Libre à ceux qui le veulent de rajouter la sauvegarde des sprites et les ouvertures de fichiers bulletproofs... :mrgreen:

Re: [OK ] découpe automatique d'images

Publié : sam. 30/avr./2016 17:14
par Fig
blendman a écrit :je trouve ça bien d'avoir séparer, tu peux avoir besoin de decoder uniquement ou d'encoder uniquement ;)
En séparant, ça permet de n'inclure que les libs ou les commandes dont tu te sers réellement ^^.
Oui je ne dis pas le contraire, mais je suis tête en l'air et tu vois, je n'ai pas fait attention...

Re: [OK ] découpe automatique d'images

Publié : mar. 26/juil./2016 16:37
par Shadow
Mince alors, j'ai une méga image et je cherche un logiciel pour faire ça :(
Mon image est méga grande env 24 000 * 9000.
Marche pas avec ton logiciel.

Re: [OK ] découpe automatique d'images

Publié : mar. 26/juil./2016 18:59
par Ar-S
@shadow

Et tu peux pas le faire avec gimp ? Ou même avec Faststone image viewer ?
pour rappel :
La doc a écrit :La taille maximale de l'image est fonction du système d'exploitation et de la quantité de mémoire disponible. Si la mémoire disponible est suffisante alors une image de 8192x8192 peut être traitée par tous les systèmes d'exploitation pris en charge par PureBasic

Re: [OK ] découpe automatique d'images

Publié : mar. 26/juil./2016 19:12
par Zorro
Ar-S a écrit :Si la mémoire disponible est suffisante alors une image de 8192x8192 peut être traitée par tous les systèmes d'exploitation pris en charge par PureBasic
je crois que cela ne concerne que la compilation en 32 bits !!

en 64 bits , no limites !! :)

Re: [OK ] découpe automatique d'images

Publié : mer. 27/juil./2016 0:03
par Ar-S
Ah bon ? (enfin déjà limite mémoire) mais je suis surpris là.

Re: [OK ] découpe automatique d'images

Publié : mer. 27/juil./2016 1:14
par Shadow
Il as raison, merci.

Re: [OK ] découpe automatique d'images

Publié : mer. 27/juil./2016 8:09
par Zorro
Ar-S a écrit :Ah bon ? (enfin déjà limite mémoire) mais je suis surpris là.
ha bah non ! ça ne marche pas

j'ai pourtant eu un code pour charger une grosse image et faire un flou dessus
qui fonctionnait , il me semble meme que c'est Fred lui meme qui m'avait dit qu'en 64 bits
pas de problemes .... ai-je révé ??
d'habitude ma memoire ne me fait pas defaut a ce point.... bizarre ....

ou alors c'est parceque j'etais sous Windows 10 a l'epoque ....??
Fred aborde le sujet ici :
http://forums.purebasic.com/english/vie ... eeb1b67b2c

..... oui il semble bien que ce soit la nouvelle version de windows (la 10) qui permet de repousser les limites des 8192x8192

Fred semble le dire ici :
http://forums.purebasic.com/english/vie ... eeb1b67b2c




testez ce code en compilation 64 bits avec windows 10

Code : Tout sélectionner


; a tester en compilation 64 bits sous windows 10
x= 40000
y= 40000
; pour les autres : 
;x= 3000
;y= 3000


If OpenWindow(0, 0, 0, 800, 600, "CreateImage", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
		ScrollAreaGadget( #PB_Any, 10, 10, 800-30,600-30, x, y, 30)		
	imggadget=ImageGadget(#PB_Any, 0, 0, x, y, 0)
		CloseGadgetList()
		
		img = CreateImage(#PB_Any, x,y,32) 
		
		StartDrawing(ImageOutput(img )) ; get the dc of the dummy PB image		
				for i=1 to 1000
						circle(random(x,1),random(y,1),10,rgb(random(255,1),random(255,1),random(255,1)))
				Next i
		StopDrawing()
		SetGadgetState(imggadget, ImageID(img)) ; Affichage
		
		Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
EndIf





Re: [OK ] découpe automatique d'images

Publié : mer. 27/juil./2016 8:57
par Marc56
Windows 10 x64 - PB 5.50 - RAM 16 Go

Code : Tout sélectionner

Attente du démarrage du programme...
Type d'exécutable: Windows - x64  (64bit, Unicode)
Exécutable démarré.
[ERREUR] Ligne: 11
[ERREUR] La largeur maximale d'un Gadget est de 32767 pixels.
Si on supprime les gadgets (au cas où ceux-ci ne supportent pas)

Code : Tout sélectionner

;       ScrollAreaGadget( #PB_Any, 10, 10, 800-30,600-30, x, y, 30)      
;   imggadget=ImageGadget(#PB_Any, 0, 0, x, y, 0)
;       CloseGadgetList()
CreateImage ne supporte pas non-plus

Code : Tout sélectionner

Attente du démarrage du programme...
Type d'exécutable: Windows - x64  (64bit, Unicode)
Exécutable démarré.
[ERREUR] Ligne: 15
[ERREUR] CreateImage(): La largeur de l'image est > à 32000 pixels.
Le programme a été arrêté.
Par approche dichotomique, voici la plus grande taille avant message d'erreur.

Code : Tout sélectionner

x= 32000
y= 16777
:wink:

Re: [OK ] découpe automatique d'images

Publié : mer. 27/juil./2016 12:50
par Ar-S
J'ai créé une image avec un dégradée de 32500x17000
Si cette image n'est pas "affichable", je n'ai cependant pas de soucis pour la charger. Donc pour en revenir à
shadow a écrit :j'ai une méga image et je cherche un logiciel pour faire ça Mon image est méga grande env 24 000 * 9000.
Tu peux la charger si ton PC a assez de RAM et que ton PB est en 64bits et tu peux la découper à ta convenance.

Dans cet exemple je charge ma grosse image 0 de 32500x17000
Je la coupe en partant de x 0 et y 0 en 1920x1080

Image

Code : Tout sélectionner

; Ar-S // PB 5.50 x64

UseJPEGImageDecoder()
UseJPEGImageEncoder()

Global in.s = "D:\Pics\__Temp\testmega.jpg" ; chemin de ta grosse image
Global out.s = "D:\Pics\__Temp\testmega_crop.jpg" ; chemin de ta grosse image

If LoadImage(0,in) <> 0
  Debug "image chargée"
  Debug "je découpe"
  If GrabImage(0, 1, 0, 0, 1920, 1080) <> 0 ; Coupe l'image
    Debug "découpage effectué"
    Debug "Je sauve..."
    If SaveImage(1,out.s,#PB_ImagePlugin_JPEG)
      MessageRequester("OK","Image 1920x1080 sauvée dans "+out.s)
    Else
      Debug "Sauvegarde imposible"
    EndIf
    
  Else
    Debug"Le découpage chie"
  EndIf  
Else
  Debug "image impossible à charger"
EndIf

FreeImage(0)
FreeImage(1)
---edit---
Je n'avais pas fait gaffe que c'etait le topic de Blendman sur le détourage..
Shadow c'est quoi encore ce projet de détourer une image aussi grande !?
Utilise des softs dédiées comme GIMP, il doit bien pouvoir le faire, ou installe une version d'essai de photoshop (valable 30j).