Humm valeu Beck, vou dar uma olhada, preciso aprender a criar os
components de forma correta, o problema eh tempo x prazo de entrega,
hehehehe

mas fazendo um "xunxinho" consegui resolver:

A classe BitmapData tem as duas propriedades de altura e largura que
sao passadas no construtor e sao read-only ex: var bd:BitmapData = new
BitmapData(320, 240);

para redimensionar um BitmapData deve se usar uma instancia da classe
Matrix:

escala_mtx = new Matrix();

escala_mtx.scale(0.5, 0.5) = 50% do tamanho

capture_bd.draw(meuvideo, escala_mtx);

Mas mesmo redimensionando o BitmapData as propriedades width e height
dele continuavam como 320x240 ;-(

Aii a solucao foi mexer na classe JPGEncoder no metodo encode,
acrescentando essas duas propriedades pra ele fazer o jpg do tamanho
correto:

// modificado acrescentando as propriedades width e heigth

                public function encode(image:BitmapData, width:int = 0, 
height:int =
0):ByteArray
                {
                        // adicionado inicio
                        if(width == 0 && height == 0)
                        {
                                width = image.width;
                                height = image.height;
                        }
                        // fim

                        // Initialize bit writer
                        byteout = new ByteArray();
                        bytenew=0;
                        bytepos=7;

                        // Add JPEG headers
                        writeWord(0xFFD8); // SOI
                        writeAPP0();
                        writeDQT();

                        // modificado inicio
                        // original = writeSOF0(image.width,image.height);
                        writeSOF0(width,height);
                        // modificado fim

                        writeDHT();
                        writeSOS();


                        // Encode 8x8 macroblocks
                        var DCY:Number=0;
                        var DCU:Number=0;
                        var DCV:Number=0;
                        bytenew=0;
                        bytepos=7;

                        // modificado inicio
                        // (var ypos:int=0; ypos<image.height; ypos+=8) {
                                //for (var xpos:int=0; xpos<image.width; 
xpos+=8) {
                        for (var ypos:int=0; ypos<height; ypos+=8) {
                                for (var xpos:int=0; xpos<width; xpos+=8) {
                                        // modificado fim

                                        RGB2YUV(image, xpos, ypos);
                                        DCY = processDU(YDU, fdtbl_Y, DCY, 
YDC_HT, YAC_HT);
                                        DCU = processDU(UDU, fdtbl_UV, DCU, 
UVDC_HT, UVAC_HT);
                                        DCV = processDU(VDU, fdtbl_UV, DCV, 
UVDC_HT, UVAC_HT);
                                }
                        }

                        // Do the bit alignment of the EOI marker
                        if ( bytepos >= 0 ) {
                                var fillbits:BitString = new BitString();
                                fillbits.len = bytepos+1;
                                fillbits.val = (1<<(bytepos+1))-1;
                                writeBits(fillbits);
                        }

                        writeWord(0xFFD9); //EOI
                        return byteout;
                }
        }


Se alguem precisar um dia desse brinquedinho postei os sources
atualizados: ;-)


http://www.rlog.com.br/capture/Capture.html


[ ]'s


Ricardo




On 5 out, 10:07, Ricardo Ramires <[EMAIL PROTECTED]> wrote:
> Olá estou fazendo um sistema, onde preciso dar um printscreen num
> video pra gerar as miniaturas... Isso eu já consegui fazer, pegando o
> melhor desses exemplos:
>
> http://blog.egenial.com.br/?p=87http://www.bytearray.org/?p=90
>
> Veja meu exemplo ( o source esta disponível com o botao direito ):
>
> http://www.rlog.com.br/capture/Capture.html
>
> Bom vamos ao problema:
> Se vc der uns 8 ou mais Print Screens e mover a barra de rolagem do
> horizontallist ele se perde... e fica sumindo as imagens, parece um
> erro na renderizacao.
>
> A estrutura dentro do horizontal list eh a seguinte:
> Criei um component extendendo o VBox:
>
> <?xml version="1.0" encoding="utf-8"?>
> <mx:VBox xmlns:mx="http://www.adobe.com/2006/mxml";
>         xmlns:views="views.*"
>         width="160" height="120" creationComplete="init()">
>
>         <mx:Script>
>                 <![CDATA[
>
>                         private function init():void
>                         {
>                                 miniatura_lc.loader.loadBytes(data.ba);
>                         }
>
>                 ]]>
>         </mx:Script>
>
>         <views:LoaderContainer id="miniatura_lc" />
>
> </mx:VBox>
>
> E dentro dele coloquei outro component extendendo o UIComponent,
> porque nao consegui dar um addChild dentro do Vbox:
>
> package views
> {
>         import mx.core.UIComponent;
>         import flash.display.Loader;
>
>         public class LoaderContainer extends UIComponent
>         {
>                 [Bindable] public var loader:Loader;
>
>                 public function LoaderContainer()
>                 {
>                         super();
>
>                         loader = new Loader();
>                         addChild(loader);
>                 }
>         }
>
> }
>
> Será que eu fiz certo ?
>
> Se alguem puder me dar uma luz eu agradeco
>
> [ ]'s
>
> Ricardo


--~--~---------~--~----~------------~-------~--~----~
Você recebeu esta mensagem porque está inscrito na lista "flexdev"
Para enviar uma mensagem, envie um e-mail para [email protected]
Para sair da lista, envie um email em branco para [EMAIL PROTECTED]
Mais opções estão disponíveis em http://groups.google.com/group/flexdev
-~----------~----~----~----~------~----~------~--~---

Responder a