Vous n'êtes pas connecté. Ce forum permet seulement les utilisateurs connectés pour poster. Si vous voulez faire un post sur le forum, s'il vous plaît connecter.
Télécharger
Développer
Compte
Télécharger
Développer
Connexion
Mot de passe oublié ?
Créer un compte
Langue
Aide
Langue
Aide
×
Connexion
Nom du compte
Mot de passe
×
Mot de passe oublié ?
Traduction statut du Français
Catégorie :
Logiciel
Peuple
PersonalForge
Magazine
Wiki
Recherche
OSDN
>
Trouver un logiciel
>
Internet
>
WWW/HTTP
>
Dynamic Content
>
CGI Tools/Libraries
>
SWF Editor for PHP
>
Forums
>
Discussion-Ouverte
>
DefineBitsLosslessのcolormapのサイズ
SWF Editor for PHP
Fork
Description
Résumé du projet
Dashboard - Développeur
Page Web
Développeurs
Galerie d'images
Liste des flux RSS
Activité
Statistiques
Historique
Téléchargements
List of Releases
Stats
Code Source
Liste des dépôts de code
Git
swfed
Subversion
Voir le référentiel
Ticket
Liste des tickets
Liste des Jalons
Liste des types
Liste des composants
Liste des tickets/RSS fréquemment utilisés
Soumettre un nouveau ticket
Documents
Page de garde
Index du titre
Modifications récentes
Communication
Forums
Liste des forums
Forum d’aide (1)
Discussion-Ouverte (71)
Listes de diffusion
Liste de ML
swfed-git
swfed-svn
Nouvelles
Forums:
Discussion-Ouverte
(Thread #19738)
Retour à la liste de discussion
RSS
DefineBitsLosslessのcolormapのサイズ (2008-08-28 12:55 by
fx-702p
#38536)
Création d'un nouveau ticket
バージョン0.08で、swf_tag_lossless.cのswf_tag_lossless_create_detailの中で、swf_tag_lossless->format=3の場合、tag->tagが20か36かでカラーインデックスの形式がXRGBかARGBかを区別していますが、XRGBの場合、カラーインデックスは1個あたり3バイトになるようで、該当する画像をもつSWFファイルは現在の状態だと読み込み時にエラーが出てしまいます。実際、uncompressのサイズを見てもカラーインデックスが3バイトだと考えると計算が合うようです。
インデックスカラーでない場合(format!=3)は、Lossless(tag=20)かLossless2(tag=30)かによって、画像サイズをsizeof(swf_xrgb_t)やsizeof(swf_argb_t)を元に計算している為、それぞれサイズの単位は3または4となり、計算が合っているようです。
同様の計算をformat=3の際にも行うようにしたところ、正しい結果になったように見えますが、どうでしょうか。
RE: DefineBitsLosslessのcolormapのサイズ (2008-08-28 13:01 by
fx-702p
#38537)
Création d'un nouveau ticket
すみません、少々説明不足でした。具体的には、origsizeを計算している計算式と直下のエラーチェックの「4 * swf_tag_lossless->colormap_count」の部分です。
Répondre à
#38536
RE: DefineBitsLosslessのcolormapのサイズ (2008-08-28 22:02 by
yoya
#38544)
Création d'un nouveau ticket
ご指摘ありがとうございます。
Lossless(1)のインデックスカラーの考慮が抜けていました。
おっしゃる通り、Lossless のインデックスカラーでは、
画像データとして 1pixel辺り3byteですので、合わせてコードを修正します。
Répondre à
#38537
RE: DefineBitsLosslessのcolormapのサイズ (2008-08-28 22:04 by
yoya
#38546)
Création d'un nouveau ticket
あと、実はビットマップ形式の Lossless は、
透明度無しでも透明度有りと同じ形式で展開しつつ、
透明度の所に 0 を埋めるという、何とも
もったいない仕様になってまして。^^;
ですので、SWF 内のビットマップ形式の画像データを
吸い出す時は Lossless, Lossless2 共に 4byte 決め打ち
で処理しています。
ただ、内部データで 4byte を使うのは勿体ないので、
xrgb_t の配列で収納する際には、3 byte で処理をしています。
この辺りの事情はコードのコメントで説明をするべきだと
考えているので、追記していきます。
わかりにくくて済みません。m(__)m
swf_xrgb.h で pad をコメントアウトしているのは、
その辺りの気持ちが中途半端に表れてます。^^;
Répondre à
#38544
RE: DefineBitsLosslessのcolormapのサイズ (2008-08-28 22:11 by
yoya
#38548)
Création d'un nouveau ticket
すみません。無茶苦茶書いてました。
整理すると以下のようになります。
- format3
- Lossless: 1color 3byte (rgb)
- Lossless2: 1color 4byte (rgba)
- format 5
- Lossless: 1pixel 4byte (xrgb) x は padding
- Lossless: 1pixel 4byte (argb)
Répondre à
#38546