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
-~----------~----~----~----~------~----~------~--~---