2009-07-14 10 views
2

私は、ブラウザ内のSWFムービーのPNG画像を生成するためのActionScriptのgetPixelとのcompinationとPHPのimagecreatetruecolorとimagesetpixelを使用しています。それがSWFムービーと同じ解像度で出力72 dpiの画像をしますが、私が代わりに300 dpiの画像を生成する可能性について尋ねてきた。現時点でフラッシュファイルから300 dpiイメージを動的に生成できますか?

これは可能ですか?

答えて

4

フラッシュは本当に解像度や解像度については何も知りません。正しいピクセル数と印刷品質でフラッシュから画像を出力する唯一の方法は、ムービーをそのピクセル数に拡大し、印刷品質の画像またはベクターグラフィックスを使用することです。それ以外の場合は、72dpiイメージを印刷して送信するだけではなく、プログラム的にスケーリングされたイメージを作成するだけです。短いストーリー、フラッシュは良いプリントデザインのプラットフォームではありません。あなたはFlashPlayerが約9、私はわからないことができますが、私はそれがうまくいくと思う

0

はい、それは可能なはずです。出力イメージのサイズを小さくする(DPIを増やす)か、補間を使用して有効解像度を72 DPIから300 DPIに上げることができます。

1

私はあなたが画像を生成するBitmapData.drawを使うと仮定しますか?あなたはBitmapDataにイメージをダンプする前に、swfファイルのアップ(scaleXscaleY)を拡張する場合は、より高いサンプル・レート=高いDPIを取得することができます。

補間だけで(McWafflestixの示唆しているように)、Matrixdrawの2番目のパラメータとして使用してみることができます。

0

はい

ここ

である私の解決策は、多分悪い、または愚かcoddingですが、それはあなたが必要とするすべてはにある

の作品300 dpiで作成する必要がある各アイテムと一緒に遊ぶ 何らかの種類

for(...) 
{ 
    var item:* = items[i] 
    item.x = item.x * delta_dpi 
    item.y = item.y * delta_dpi 
    item.width = item.width * delta_dpi 
    item.height = item.height * delta_dpi 

    if(item is TextArea) 
    // here you must increase sizes for text 
    [your_text_size] = [your_text_size] * delta_dpi 
    // and you need to apply new size to your area 

---------- 
    // in my case i used this function 
    if(item is TextArea) 
     item.htmlText = remakeText(item.htmlText) 

} 

function remakeText():String 
{ 
    var arr:Array = str.split('SIZE="')    
    var str:String 
    var i:int; 

    for(i=1; i < arr.length; i++) 
    { 
    str = arr[i] 
    var idx:int = str.indexOf('"') 
    var str2:String = str.substr(0, idx) 
    var nr:Number 
    if(to300) 
    nr = Number(str2) * 3.125 
    else 
    nr = Number(str2)/3.125 
    str = 'SIZE="' + nr + str.substring(idx) 
    arr[i] = str 
    } 

    str = '' 
    for(i=0; i < arr.length; i++) 
     str += arr[i] 

    return str 
} 
関連する問題