Zurück   Flashforum > Flash > ActionScript > ActionScript 3

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 19-08-2008, 09:31   #1 (permalink)
Neuer User
 
Registriert seit: Apr 2003
Ort: Hamburg
Beiträge: 26
BitmapData / Draw Problem

Hallo alle zusammen,

stehe ein bisschen auf dem Schlauch, Fuchse mich gezwungender weise in AS3 rein und bin da noch nicht ganz so fit (still learning)

baue gerade ein kleines bildbearbeitungstool:

http://www.sascha-bohn.com/image_encode/index3.html

das gespeicherte bild sieht man dann hier:

http://www.sascha-bohn.com/image_encode/view.html


ich modifiziere das bild nun über kontrast etc. skaliere es und beim speichern will ich quasi die bühne abknipsen, was ja auch funktioniert nur leider finde ich nichts wie ich ihm befehlen kann das es bei x:13 y:13 beginnen soll... das festlegen des bereiches ist ja kein Problem nur halt die startkoordinaten will er nicht nehmen..so habe ich natürlich im bild immer links und oben den weissen bereich der bühne.

löse das wie folgt:

var bmd : BitmapData = new BitmapData( 290, 392, true, 0xFFFFFFFF );
bmd.draw(stage);
var byteArray : ByteArray = new JPGEncoder( 90).encode(bmd);

das ganze geht dann an eine klasse und dann an ein php...das funktioniert ja auch einwandfrei... nur den bereich festlegen

kann man den eintrag wo ich die bildgrösse festlege nicht um versatz x,y erweitern:

var bmd : BitmapData = new BitmapData( 290, 392, true, 0xFFFFFFFF );

es funktioniert wenn ich ein direktes ziel angeben z.B.

bmd.draw(root.bild_mc);

nur knippst er das bild dann im original und die sklaierung geht verloren... alle befehle die ich über bitmapdata übergebe (contrast helligkeit) bleiben erhalten. nur weiss ich nicht wie man skaliert über bitmapdata oder positioniert.

vielen dank im vorraus für die hilfe der profis...

sascha
evilson ist offline   Mit Zitat antworten
Alt 19-08-2008, 09:51   #2 (permalink)
ChronoGuard
 
Benutzerbild von SpecOps-12
 
Registriert seit: Mar 2002
Ort: Saarbrücken
Beiträge: 2.649
Schau dir copyPixels an. Damit sollte es gehen (anstatt draw).

Auszug aus nem Script von mir:

PHP-Code:
var targetBD BitmapData = new BitmapData(TEIL_WTEIL_Htrue);
targetBD.copyPixels(srcBD, new Rectangle(tempWtempHTEIL_WTEIL_H), new Point(00));
hA[i][j] = new MovieClip();
hA[i][j].addChild(new Bitmap(targetBD"auto"true)); 
__________________
we will stop enhancing the truth in 3, 2, ...

Geändert von SpecOps-12 (19-08-2008 um 09:53 Uhr)
SpecOps-12 ist offline   Mit Zitat antworten
Alt 19-08-2008, 10:51   #3 (permalink)
Neuer User
 
Benutzerbild von maschka
 
Registriert seit: Jun 2003
Beiträge: 194
Eine andere Variante wäre noch, dass du das Bild (root.bild_mc) nochmal in einen Sprite-Container kapselst.

PHP-Code:
var lContainer:Sprite = new Sprite();
lContainer.addChild(bild_mc);

addChild(lContainer); 
Wenn du dann die Skalierungen/Verschiebungen auf bild_mc anwendest und beim Aufruf von draw() den lContainer übergibst, behälst du sämtliche Skalierungen bei.

Vor allem bist du flexibler, weil du nicht jedesmal, wenn du die Randbreite anpasst (wie im Beispiel von Weidler) auch den copyPixels() Befehl anpassen musst.
maschka 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 16:16 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele