These pages are written by only Japanese.
|
Namazu for hns による簡易全文検索です。 詳細は 詳細指定/ヘルプをご参照下さい。 |
|||||||||||||||||||||||||||||||||||||||||||||
$oldSize= $swfed->getBitmapSize($image_id); $scale_x = $oldSize['width'] / $newSize['width']; // 逆数 $scale_y = $oldSize['height'] / $newSize['height']; // 逆数 $shape_id_list = $swfed->getShapeIdListByBitmapRef($image_id); foreach ($shape_id_list as $shape_id) { $swfed->applyShapeMatrixFactor($shape_id, $scale_x, $scale_y, 0, 0, 0); }のように出来て、$shape_id_list を何らかの方法(memcached とか)で cache すれば、 重たい所も対処できるはず。という目的で用意しました。
% php -i | grep -i swf /etc/php.d/swfed.ini swfed SWF Editor support => enabled SWF Editor version => 0.24 SWF Editor PNG support => yes SWF Editor GIF support => yes PWD => /home/yoya/svn/swfed/trunk/src _SERVER["PWD"] => /home/yoya/svn/swfed/trunk/src _ENV["PWD"] => /home/yoya/svn/swfed/trunk/src今までなくて、ほんと済みません。
@hnw @yoya 32bit環境でfloatをstringにキャストすると14桁で切れるみたいですね。64bit環境だと再現せず。謎だわ。当初、12桁と書いていたのですが、hnm さんから指摘を受けて、
<?php $a = array('a' => 'a', 'b' => array('b', 'c')); $b = array('a' => 'a', 'b' => array('b')); var_dump(array_diff($a, $b));残念な結果
array(0) { }
<?php function array_diff_recursive($a, $b) { $result = array(); foreach ($a as $k => $v) { if (array_key_exists($k, $b)) { if (is_array($v)) { $result[$k] = array_diff_recursive($v, $b[$k]); } else { if ($v != $b[$k]) { $result[$k] = $v; } } } else { $result[$k] = $v; } } return $result; }
<?php $a = array('a' => 'a', 'b' => array('b', 'c')); $b = array('a' => 'a', 'b' => array('b')); var_dump(array_diff($a, $b)); var_dump(array_diff_recursive($a, $b));
array(0) { } array(1) { ["b"]=> array(1) { [1]=> string(1) "c" } }
<?php function array_diff_recursive($a, $b) { $result = array(); if (is_array($a)) { foreach ($a as $k => $v) { if (isset($b[$k])) { $ret = array_diff_recursive($a[$k], $b[$k]); if (count($ret) > 0) { $result[$k] = $ret; } } else { $result[$k] = $a[$k]; } } } else { if ($a != $b) { return $a; } } return $result; }これを5分位で改良して、冒頭の array_diff_recursive が出来ました。