IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Eclipse Platform Discussion :

sauver une IFigure dans un gif


Sujet :

Eclipse Platform

  1. #1
    Inactif  
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    2 189
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2006
    Messages : 2 189
    Points : 2 336
    Points
    2 336
    Par défaut sauver une IFigure dans un gif
    Salut,

    Depuis mon application j ai un bouton qui me permet de créer de la documentation et des captures d écrans des pages créers

    Le problème que j ai est lorsque je dois faire une capture d écran d une seule des figures de l écran (et de ces enfants) j obtiens une belle image blanche

    voici mon code de création de l image :

    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
     
     
    	/**
             * Create an image for a gived figure and a specified format
             * 
             * @param figure
             *            the Figure to create an image for.
             * @param format
             *            one of SWT.IMAGE_BMP, SWT.IMAGE_GIF
             *            , SWT.IMAGE_JPEG, or SWT.IMAGE_PNG
             * @return byte [] returns an array of bytes that include the image
             */
    	private static byte[] createImage(IFigure figure, int format) {
     
    		Device device = Display.getDefault();
     
    		ConditionalBodyFigure conditionFigure = (ConditionalBodyFigure) figure;		
    		HorizontalLayout layout = new HorizontalLayout(conditionFigure.getFigureContext());
    		conditionFigure.setLayoutManager(layout);
    		conditionFigure.setVisible(true);
    		layout.layout(conditionFigure);
    		Rectangle r = conditionFigure.getBounds();
    		ByteArrayOutputStream result = new ByteArrayOutputStream();
     
    		Image image = null;
    		GC gc = null;
    		Graphics g = null;
    		try {
    			image = new Image(device,500,500);
    			gc = new GC(image);
    			g = new SWTGraphics(gc);
    			g.translate(r.x * -1, r.y * -1);
     
    			figure.paint(g);
    			ImageLoader loader = new ImageLoader();
    			loader.data = new ImageData[1];			
    	        ImageData imageData = image.getImageData();
    	        /* If the image depth is 8 bits or less, then we can use the existing image data. */
    	        if (imageData.depth <= 8) {
    	        	loader.data[0] = imageData;
    	        }else {
    		        /* get an 8 bit imageData for the image  */
    		        ImageData newImageData = CreateImageAction.get8BitPaletteImageData(imageData);
    		        loader.data[0] = newImageData;
    	        }
    	        loader.save(result, format);
    		} catch (Exception e) {
    			e.printStackTrace();
    		} finally {
    			if (g != null) {
    				g.dispose();
    			}
    			if (gc != null) {
    				gc.dispose();
    			}
    			if (image != null) {
    				image.dispose();
    			}
    		}
    		return result.toByteArray();
    	}
    si quelqu un aurait une piste je le remercie d avance

  2. #2
    Inactif  
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    2 189
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2006
    Messages : 2 189
    Points : 2 336
    Points
    2 336
    Par défaut
    meme en créer un layout manager et en settant les bounds des enfants et du container ca ne marche pas ... toujours une image blanche (mais cette fois avec une lettre n dessiné dessus)

  3. #3
    Inactif  
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    2 189
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2006
    Messages : 2 189
    Points : 2 336
    Points
    2 336
    Par défaut
    il fallait faire le layout des children de chaque figure

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 3
    Dernier message: 18/04/2008, 09h54
  2. [MySQL] sauver une image dans la base de donnée?
    Par bebas dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 04/05/2007, 11h26
  3. [C# 2.0] Comment sauver une image dans un fichier Xml ?
    Par Louis-Guillaume Morand dans le forum C#
    Réponses: 4
    Dernier message: 08/09/2006, 17h47
  4. [debutant]Sauver une table dans un fichier
    Par christophebmx dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 26/04/2004, 10h34
  5. Sauver une StringGrid dans un fichier
    Par Rodrigue dans le forum C++Builder
    Réponses: 2
    Dernier message: 10/12/2003, 14h52

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo