Avatar billede hmau Nybegynder
30. juli 2002 - 09:58 Der er 10 kommentarer og
1 løsning

Brug af GrayFilter

Jeg har brug for at kunne "disable" et billede, altså lave en greyed out version og bruger nedenstående kode til det.

GrayFilter gfilter = new GrayFilter(false,0);

final ImageIcon imageicon = new ImageIcon("pic.jpg");

Image image = gfilter.createDisabledImage(imageicon.getImage());


Det virker sådan set fint nok, men jeg ville gerne have mulighed for at kunne justere hvor lyst/mørkt det genererede billede bliver.
Nedenstående er taget fra Sun's hjemmeside.


GrayFilter
public GrayFilter(boolean b,
                  int p)
Constructs a GrayFilter object that filters a color image to a grayscale image. Used by buttons to create disabled ("grayed out") button images.

Parameters:
b - a boolean -- true if the pixels should be brightened
p - an int in the range 0..100 that determines the percentage of gray, where 100 is the darkest gray, and 0 is the lightest

Så vidt jeg forstår kan jeg med de to parametre b og p justere hvordan filteret fungerer, men når jeg ændrer på disse i ovenstående kode "GrayFilter gfilter = new GrayFilter(true,100);" er der ikke nogen synlig ændring.
Hvordan kan jeg ændre parametrene på filteret?
Avatar billede prom Nybegynder
30. juli 2002 - 12:48 #1
prøv med:
GrayFilter gfilter = new GrayFilter(true,50);

prom
Avatar billede hmau Nybegynder
30. juli 2002 - 12:57 #2
I stedet for

GrayFilter gfilter = new GrayFilter(false,0);

???

For det har jeg prøvet samt flere andre kombinationer uden at jeg kan se ændring i hvor lyst/mørkt billedet bliver.
Avatar billede prom Nybegynder
30. juli 2002 - 13:38 #3
Send lige lidt kode...

prom
Avatar billede aslan Nybegynder
30. juli 2002 - 13:54 #4
tjaa prøv det her:

GrayFilter gfilter = new GrayFilter(true,100);
gfilter.validate();
Avatar billede hmau Nybegynder
30. juli 2002 - 14:49 #5
package pictest;

import java.awt.*;
import javax.swing.*;

public class piccies {

  public static void main(String[] args) {
    GrayFilter gfilter = new GrayFilter(true,0);
    final ImageIcon imageicon = new ImageIcon("icon_scene_timer_no_resource.png");
    Image image = gfilter.createDisabledImage(imageicon.getImage());
    Frame frame = new Frame("my frame");

    myCanvas mc = new myCanvas(image);
    frame.resize(200,100);
    frame.add(mc);
    frame.show();
  }
}

class myCanvas extends Canvas {
  Image saved_image;
  public myCanvas(Image i) {
    this.resize(150,100);
    saved_image = i;
  }

  public void paint(Graphics g) {
    g.drawImage(saved_image, 10, 10, this);
  }
}
Avatar billede hmau Nybegynder
30. juli 2002 - 14:50 #6
aslan> får en error.

Method validate() not found in class java.swing.GrayFilter
Avatar billede aslan Nybegynder
30. juli 2002 - 15:20 #7
sorry min fejl prøv:

GrayFilter gfilter = new GrayFilter(true,100);
validate();
Avatar billede hmau Nybegynder
30. juli 2002 - 15:28 #8
Samme fejl, men nu i class pictest.piccies
Avatar billede aslan Nybegynder
30. juli 2002 - 20:33 #9
Jamen prøv dette så;

GrayFilter gfilter = new GrayFilter(true,100);
repaint();

og hvis det ikke virker:

    frame.resize(200,100);
    frame.add(mc);
    frame.show();
    frame.setVisible(true);
Avatar billede hmau Nybegynder
31. juli 2002 - 10:19 #10
repaint:
Samme fejl som ved validate.

setVisible:
Ingen forskel.
Avatar billede hmau Nybegynder
21. august 2002 - 14:57 #11
Spørgsmålet lukket.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester