Visualizzazione dei risultati da 1 a 9 su 9

Discussione: grayscale in AS

  1. #1

    grayscale in AS

    salve. mi chiedevo se fosse possibile in AS gestire il colore in maniera da ottenere un immagine in grayscale

  2. #2
    Utente di HTML.it L'avatar di arn
    Registrato dal
    Jun 2002
    Messaggi
    420
    Fai un file esterno con estensione ".as" e scrivi:

    class Transform {
    private static var NEG_TRANS:Object = {ra:-100, rb:255,
    ga:-100, gb:255, ba:-100, bb:255, aa:100, ab:0};
    private static var NEUTRAL_TRANS:Object = {ra:100, rb:0,
    ga:100, gb:0, ba:100, bb:0, aa:100, ab:0};
    private static var BLACK_TRANS:Object = {ra:100, rb:-255,
    ga:100, gb:-255, ba:100, bb:-255, aa:100, ab:0};
    private static var WHITE_TRANS:Object = {ra:100, rb:255,
    ga:100, gb:255, ba:100, bb:255, aa:100, ab:0};
    private static var RATE:Number = 50;

    private var interval:Number;
    private var startTime:Number;
    private var colorObj:Color;
    public function Transform(targetClip:MovieClip) {
    colorObj = new Color(targetClip);
    }
    public function invert(duration:Number):Void {
    applyTransform(NEG_TRANS, duration);
    }

    public function reset(duration:Number):Void {
    applyTransform(NEUTRAL_TRANS, duration);
    }

    public function fadeToBlack(duration:Number):Void {
    applyTransform(BLACK_TRANS, duration);
    }

    public function fadeToWhite(duration:Number):Void {
    applyTransform(WHITE_TRANS, duration);
    }

    private function applyTransform(transObject:Object,
    duration:Number):Void {
    var getTrans:Object = colorObj.getTransform( );
    var diffTrans:Object = new Object( );
    startTime = getTimer( );
    for (var i in transObject) {
    diffTrans[i] = (transObject[i] - getTrans[i]) / (duration / RATE);
    }
    interval = setInterval(this, "transition", RATE, transObject, diffTrans,
    duration);
    }

    private function transition(transObject:Object, diffTrans:Object,
    duration:Number):Void {
    var getTrans:Object = colorObj.getTransform( );
    for (var i in diffTrans) {
    getTrans[i] += diffTrans[i]
    }
    colorObj.setTransform(getTrans);
    if (getTimer( ) - startTime > duration) {
    colorObj.setTransform(transObject);
    clearInterval(interval);
    }
    updateAfterEvent( );
    }

    public function die( ):Void {
    }
    }

    Poi fate un file con all'interno un immagine, la trasformate in Mc e poi gli date l'istanza "image_mc" e scrivete sull'MC:

    #include "Transform.as"

    E sullo stage:

    var transformer:Transform = new Transform(image_mc);
    transformer.invert(2000);
    transformer.fadeToWhite(3000);


    soluzioni di Kmaster & Teejay.

    ------------------------
    altra soluzione:

    codice da associare al primo frame

    //si crea un nuovo oggetto Color associato al nostro mc: foto
    myColor = new Color(foto);
    //memorizziamo i valori iniziali da cui partire per la transizione
    obj = myColor.getTransform();
    //parametri per invertire i colori della foto
    neg = {ra:-100, rb:255, ga:-100, gb:255, ba:-100, bb:255, aa:100, ab:0};
    //al click del mouse avviamo l'effetto
    onMouseDown = function(){
    onEnterFrame = function(){
    //per ogni parametro dell oggetto obj
    for(var i in obj){
    //viene calcolato il nuovo valore tra quello iniziale e finale
    obj[i] += (neg[i]-obj[i])/40;
    }
    //e associato all'oggetto Color creato all'inizio
    myColor.setTransform(obj);
    };
    };

    sta a voi aggiungere i dovuti controlli per eliminare l'handler onEnterFrame a transizione terminata
    La rapidità che è una virtù, genera un vizio che è la fretta !
    -------------------------
    Browser: Opera & Firefox

  3. #3

  4. #4
    ti ringrazio lo stesso, ma questo script non fa quello che voglio.. credo. la mia intenzione è di eliminare i colori dall 'immagine, farla diventare in bianco e nero. se uso questi script l'immagine sfuma verso il bianco o il nero.

  5. #5
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    guarda nel garage di pasavign il link è Img_effect, il quart'ultimo

  6. #6
    benissimo.. era quello che cercavo
    tnx

  7. #7

    no.
    il problema è che non voglio fare una transizione in alpha con le due foto, una in b/n , l'altra a colori.ovvia soluzione ma poco pratica.
    io sto cercando di manomettere l'immagine colorata. e farla diventare in B/n... unsando AS.

  8. #8
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    Originariamente inviato da atarutek

    no.
    il problema è che non voglio fare una transizione in alpha con le due foto, una in b/n , l'altra a colori.ovvia soluzione ma poco pratica.
    io sto cercando di manomettere l'immagine colorata. e farla diventare in B/n... unsando AS.
    ho fatto una prova "manuale" con le opzioni avanzate per la manipolazione del colore nei clip, nulla da fare, se già non funziona lì, c'è poca speranza che possa andare con AS

    forse in flash8 c'è qualche filtro che fà questo nativamente, non saprei

  9. #9
    ok
    tnx to futre
    l'effetto si puo' ottenere cosi'

    quasimodo

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.