[R] Découper une image et l'enregistrer

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Avatar du membre
DJSIR
Niveau 8
Niveau 8
Messages : 583
Enregistré le : mar. 01 juil. 2008 15:16
Localisation : 76, Le HAVRE (in the DJSIR World)
Status : Hors ligne

[R] Découper une image et l'enregistrer

#1

Message par DJSIR »

Bonjour.
J'ai un petit problème à résoudre.

J'ai ces deux images :
Image 1
Image 1
Sans titre 1.jpg (1.18 Kio) Vu 1352 fois
Image 2
Image 2
Sans titre 2.jpg (1.21 Kio) Vu 1352 fois
J'ai besoin de les découper pour obtenir que la moitié de chaque. Exemple, je veux couper l'image 1 et l'image 2 de facon a obtenir une image de 50x100.
Une fois obtenue, il faut l'enregistrer... Possible ? Merci
Modifié en dernier par DJSIR le ven. 01 janv. 2010 17:25, modifié 3 fois.
$DJSIR = "1000110001010101011010000101001101001101001010101011010"
(ne décodez pas le binaire, ça veux rien dire)

[Func] ProgressBar, aller plus loin
Habibsbib
Niveau 7
Niveau 7
Messages : 393
Enregistré le : dim. 30 août 2009 13:49
Localisation : Euh...Verticale, entre le siège et l'écran...
Status : Hors ligne

Re: [..] Découper une image et l'enregistrer

#2

Message par Habibsbib »

Rigolo comme problème... je me demande qu'est-ce que tu veux faire avec ça ^^

Autrement, ben je vois pas... tu devrais te tourner du côté UDF's, sur le site amèricain il devrait bien y avoir quelquechose (non?^)

Je cherche...
Avatar du membre
DJSIR
Niveau 8
Niveau 8
Messages : 583
Enregistré le : mar. 01 juil. 2008 15:16
Localisation : 76, Le HAVRE (in the DJSIR World)
Status : Hors ligne

Re: [..] Découper une image et l'enregistrer

#3

Message par DJSIR »

Réponse trouvée ici
$DJSIR = "1000110001010101011010000101001101001101001010101011010"
(ne décodez pas le binaire, ça veux rien dire)

[Func] ProgressBar, aller plus loin
Habibsbib
Niveau 7
Niveau 7
Messages : 393
Enregistré le : dim. 30 août 2009 13:49
Localisation : Euh...Verticale, entre le siège et l'écran...
Status : Hors ligne

Re: [R] Découper une image et l'enregistrer

#4

Message par Habibsbib »

Y a toujours quelque chose sur le fofo anglais :wink:
Avatar du membre
DJSIR
Niveau 8
Niveau 8
Messages : 583
Enregistré le : mar. 01 juil. 2008 15:16
Localisation : 76, Le HAVRE (in the DJSIR World)
Status : Hors ligne

Re: [..] Découper une image et l'enregistrer

#5

Message par DJSIR »

Sauf que...... <retour sur le forum>

Reprenons mon exemple.. L'image n°1 s'apelle sans.png. Normalement le fichier sans2 devrait être orange non?

Code : Tout sélectionner

#cs ----------------------------------------------------------------------------

 AutoIt Version : 3.3.0.0
 Auteur:         MonNom

 Fonction du Script :
    Modèle de Script AutoIt.

#ce ----------------------------------------------------------------------------

; Début du script - Ajouter votre code ci-dessous.
#include <GDIPlus.au3>

; Load PNG file as GDI bitmap
_GDIPlus_Startup()
$gdi_pngSrc = @ScriptDir&"\sans.png"
$gdi_hImage = _GDIPlus_ImageLoadFromFile($gdi_pngSrc)

; Extract image width and height from PNG
$gdi_imageWidth = _GDIPlus_ImageGetWidth($gdi_hImage)
$gdi_imageHeight = _GDIPlus_ImageGetHeight($gdi_hImage)

; Get Left, Right & Center from back.png
$gdi_hLeftImage = _ImageCut($gdi_hImage, 0, 0, 50, 100)
$gdi_hLeftImage1 = _ImageCut($gdi_hImage, 50, 0, 50, 100)
_GDIPlus_ImageSaveToFile($gdi_hLeftImage, @ScriptDir&"\sans1.png")
_GDIPlus_ImageSaveToFile($gdi_hLeftImage1, @ScriptDir&"\sans2.png")

; Release resources
_GDIPlus_ImageDispose($gdi_hLeftImage)
_GDIPlus_ImageDispose($gdi_hLeftImage1)
_GDIPlus_ImageDispose($gdi_hImage)

_GDIPlus_Shutdown()

Func _ImageCut($hImage, $iX, $iY, $iWidth, $iHeight)
    Local $iImageWidth, $iImageHeight, $hOldGC, $hNewGC, $hOldBmp, $hNewBmp
; Extract image width and height from PNG
    $iImageWidth = _GDIPlus_ImageGetWidth($hImage)
    $iImageHeight = _GDIPlus_ImageGetHeight($hImage)
; Create New image
    $hOldGC = _GDIPlus_ImageGetGraphicsContext($hImage); Get GC from $hImage
    $hOldBmp = _GDIPlus_BitmapCreateFromGraphics($iImageWidth, $iImageHeight, $hOldGC); Create Bmp from the old GC
    $hNewBmp = _GDIPlus_BitmapCloneArea($hOldBmp, $iX, $iY, $iWidth, $iHeight, $GDIP_PXF32ARGB); Get Piece of Bmp
    $hNewGC = _GDIPlus_ImageGetGraphicsContext($hNewBmp); Get GC from new created Bmp
    _GDIPlus_GraphicsDrawImage($hNewGC, $hImage, 0, 0); Draw the image, i don't really know why you have to use $hImage
    _GDIPlus_GraphicsDispose($hOldGC)
    _GDIPlus_GraphicsDispose($hNewGC)
    _GDIPlus_BitmapDispose($hOldBmp)
    Return $hNewBmp
EndFunc
 
$DJSIR = "1000110001010101011010000101001101001101001010101011010"
(ne décodez pas le binaire, ça veux rien dire)

[Func] ProgressBar, aller plus loin
Habibsbib
Niveau 7
Niveau 7
Messages : 393
Enregistré le : dim. 30 août 2009 13:49
Localisation : Euh...Verticale, entre le siège et l'écran...
Status : Hors ligne

Re: [..] Découper une image et l'enregistrer

#6

Message par Habibsbib »

Ben si ça marche, effectivement, c'est sans2 qui devrait être orange :?
Avatar du membre
DJSIR
Niveau 8
Niveau 8
Messages : 583
Enregistré le : mar. 01 juil. 2008 15:16
Localisation : 76, Le HAVRE (in the DJSIR World)
Status : Hors ligne

Re: [..] Découper une image et l'enregistrer

#7

Message par DJSIR »

(il ne l'est pas)
$DJSIR = "1000110001010101011010000101001101001101001010101011010"
(ne décodez pas le binaire, ça veux rien dire)

[Func] ProgressBar, aller plus loin
Avatar du membre
TommyDDR
Modérateur
Modérateur
Messages : 2116
Enregistré le : mar. 22 juil. 2008 21:55
Localisation : Nantes
Status : Hors ligne

Re: [..] Découper une image et l'enregistrer

#8

Message par TommyDDR »

Je n'ai pas essayé mais tente de changer :

$gdi_hLeftImage = _ImageCut($gdi_hImage, 0, 0, 50, 100)
$gdi_hLeftImage1 = _ImageCut($gdi_hImage, 50, 0, 50, 100)

en mettant

$gdi_hLeftImage = _ImageCut($gdi_hImage, 0, 0, 50, 100)
$gdi_hLeftImage1 = _ImageCut($gdi_hImage, 50, 0, 100, 100)

;) c'est plus logique
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679
Habibsbib
Niveau 7
Niveau 7
Messages : 393
Enregistré le : dim. 30 août 2009 13:49
Localisation : Euh...Verticale, entre le siège et l'écran...
Status : Hors ligne

Re: [..] Découper une image et l'enregistrer

#9

Message par Habibsbib »

:borne code à ajouter:

Autrement, je n'ai pas testé, mais logiquement ça semble bon :)
Répondre