Ansicht von 1 Beitrag (von insgesamt 1)
  • Autor
    Beiträge
  • #1921
    whitenexx
    Teilnehmer

    Hi zusammen!
    Ich habe in meinem Grails-Projekt eine Image-Domain-Klasse und den entsprechenen Controller.
    Nun habe ich das Grails-Plugin ImageTools 1.0.4 installiert und möchte damit Thumbnails aus den upgeloadeten Bildern generieren bzw. immer wenn ein Bild gespeichert wird, soll dazu ein Thumbnail generiert und gespeichert werden.

    Meine Image Domain Class sieht so aus:
    [java]class Image {
    byte[] data
    //String name

    byte[] thumbnail

    static constraints = {
    //name()
    data()
    }
    }
    [/java]

    Die „save“-Action im Image-Controller so:
    [java]def save = {
    def imageInstance = new Image(params)
    def imageTool = new ImageTool()
    imageTool.load(imageInstance.data)
    imageTool.thumbnail(320)
    imageInstance.thumbnail = imageTool.getBytes(„JPEG“) //Hier ist mein Problem!
    if(!imageInstance.hasErrors() && imageInstance.save()) {
    flash.message = „Image ${imageInstance.id} created“
    redirect(action:show,id:imageInstance.id)
    }
    else {
    render(view:’create‘,model:[imageInstance:imageInstance])
    }
    }
    [/java]

    Wenn ich meine Grailsapplikation starte und ein Bild uploade bekomme ich aber folgende Fehlermeldung:

    Code:
    Error 200: groovy.lang.MissingMethodException: No signature of method: ImageTool.getBytes() is applicable for argument types: (java.lang.String) values: {„JPEG“}
    Servlet: grails
    URI: /grailsproject/grails/image/save.dispatch
    Exception Message: No signature of method: ImageTool.getBytes() is applicable for argument types: (java.lang.String) values: {„JPEG“}
    Caused by: groovy.lang.MissingMethodException: No signature of method: ImageTool.getBytes() is applicable for argument types: (java.lang.String) values: {„JPEG“}
    Class: GrailsAuthenticationProcessingFilter
    At Line: [57]

    Aus der Fehlermeldung kann man schließen, dass angeblich die Methode getBytes() fehlt, oder? Aber eigentlich ist sie definitiv vorhanden. Ich habe extra im Quelltext des Plugins nachgeguckt und intelliJ (meine IDE) meckert auch nicht. Was kann ich nun tun, oder weiß jemand wo der Fehler liegt?

    ACHTUNG, ich habe den Fehler gelöst!
    Einfach die ImageTool.groovy editieren und die getBytes() Methode mit folgender Methode ersetzen:
    [java] /**
    * Returns the resulting image as a byte array.
    *
    * @param type file type for the image
    * @see Possible JAI encodings
    */
    public byte[] getBytes(String type) throws IOException {

    ByteArrayOutputStream bos = new ByteArrayOutputStream();

    JAI.create(„encode“, result, bos, type, null);

    return bos.toByteArray()

    }
    [/java]

    Danke schonmal im vorraus,
    whitenexx

Ansicht von 1 Beitrag (von insgesamt 1)
  • Du musst angemeldet sein, um auf dieses Thema antworten zu können.