私は、ブラウザ内のSWFムービーのPNG画像を生成するためのActionScriptのgetPixelとのcompinationとPHPのimagecreatetruecolorとimagesetpixelを使用しています。それがSWFムービーと同じ解像度で出力72 dpiの画像をしますが、私が代わりに300 dpiの画像を生成する可能性について尋ねてきた。現時点でフラッシュファイルから300 dpiイメージを動的に生成できますか?
これは可能ですか?
私は、ブラウザ内のSWFムービーのPNG画像を生成するためのActionScriptのgetPixelとのcompinationとPHPのimagecreatetruecolorとimagesetpixelを使用しています。それがSWFムービーと同じ解像度で出力72 dpiの画像をしますが、私が代わりに300 dpiの画像を生成する可能性について尋ねてきた。現時点でフラッシュファイルから300 dpiイメージを動的に生成できますか?
これは可能ですか?
フラッシュは本当に解像度や解像度については何も知りません。正しいピクセル数と印刷品質でフラッシュから画像を出力する唯一の方法は、ムービーをそのピクセル数に拡大し、印刷品質の画像またはベクターグラフィックスを使用することです。それ以外の場合は、72dpiイメージを印刷して送信するだけではなく、プログラム的にスケーリングされたイメージを作成するだけです。短いストーリー、フラッシュは良いプリントデザインのプラットフォームではありません。あなたはFlashPlayerが約9、私はわからないことができますが、私はそれがうまくいくと思う
はい、それは可能なはずです。出力イメージのサイズを小さくする(DPIを増やす)か、補間を使用して有効解像度を72 DPIから300 DPIに上げることができます。
私はあなたが画像を生成するBitmapData.draw
を使うと仮定しますか?あなたはBitmapData
にイメージをダンプする前に、swfファイルのアップ(scaleX
とscaleY
)を拡張する場合は、より高いサンプル・レート=高いDPIを取得することができます。
補間だけで(McWafflestixの示唆しているように)、Matrix
をdraw
の2番目のパラメータとして使用してみることができます。
はい
ここである私の解決策は、多分悪い、または愚か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
}