• beyond tellerrand – play. Register Now!
Zurück   Flashforum > Flash > Flash Fortgeschritten > Flash 8

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 13-01-2008, 19:16   #1 (permalink)
.
 
Benutzerbild von marcorei
 
Registriert seit: Dec 2003
Ort: Regensburg
Beiträge: 114
Photos sauber und performant drehen

Hallo,

Kurze Vorgeschichte
Habe vor kurzem im Einsteigerforum eine allgemeine Frage zum Drehen von Bildern in Flash 8 gestellt. Das Problem war, dass die Bilder nach dem Drehen verpixelt waren. soundZ hat mich dann auf diesen Blogeintrag verwiesen, der erklärt, wie man das in Flash 8 standartmäßig ausgeschaltete Smoothing wieder aktiviert. Den Grund für das Ausschalten nannte der Verfasser auch:
Zitat:
Originally I made this choice for performance reasons
Was geschah...
Das Smoothing war perfekt, aber da es sich um einige Bilder handelt, die gleichzeitig einmalig um -30° gedreht werden, ist genau das eingetreten, was ich befürchtet habe, nachdem ich die Begründung für's Abschalten im Blog gelesen hatte.

Lösungsansatz?
Da ich nun eh schon mit der BitmapData-Klasse Bekanntschaft gemacht habe, dachte ich, es wäre sinnvoll, alle Bilder, nachdem sie geladen werden einmal gedreht neu zu "berechnen", um das Smoothing nacher ausschalten zu können. Mein Versuch:
PHP-Code:
var pfad_tmp "immereinanderesBild.jpg";
var 
preview_tmp:MovieClip this.createEmptyMovieClip("Preview_cont",0);
var 
preview_loader:MovieClipLoader = new MovieClipLoader();
var 
preview_listener:Object = new Object();
var 
preview_bmc:MovieClip preview_tmp.createEmptyMovieClip("bmc",0);
preview_loader.addListener(preview_listener);
preview_listener.tmc preview_tmp;
preview_listener.onLoadInit = function(mc:MovieClip)
{
    
mc._visible false;
    var 
bitmap:BitmapData = new BitmapData(mc._widthmc._heighttrue0x000000);
    
this.tmc.attachBitmap(bitmapthis.tmc.getNextHighestDepth(),"auto"true);
    var 
matrix:Matrix = new Matrix();
    
matrix.rotate((-30/180)*Math.PI);
    var 
myColorTransform:ColorTransform = new ColorTransform(1,1,1,1,0,0,0,0);
    var 
blendMode:Object "normal";
    var 
myRectangle:Rectangle = new Rectangle(0,0,mc._width,mc._height);
    var 
smooth:Boolean true;
    
bitmap.draw(mc,matrix,myColorTransformblendModemyRectanglesmooth);
}
preview_loader.loadClip(pfad_tmp,preview_bmc); 
Probleme:
Bild ist abgeschnitten (aber das lässt sich bestimmt lösen, indem man die Matrix noch verschiebt etc)
Das Bild ist "pixlig". (wird ohne Smoothing gedreht?)

Welchen Weg kann ich denn einschlagen, um ein Bild wirklich "schön gedreht" neu zu berechnen?
marcorei ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an



Alle Zeitangaben in WEZ +1. Es ist jetzt 22:27 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele