Autor Wątek: Łączenie kilku plików png z klatkami animacji w jeden.  (Przeczytany 3776 razy)

Offline davidbnpl

  • Użytkownik

# Grudzień 24, 2012, 01:37:08
Witam. Czy jest jakiś szybki sposób na zrobienie tego co w temacie? Mam program, w którym tworzę animację i jest ona zapisywana jako zbiór plików animacja_1, animacja_2, animacja_n z kolejnymi klatkami, a potrzebuję, aby znajdowały się one w jednym pliku ułożone rzędami. Mogę zapewne napisać własny program, który to wykona lub robić to ręcznie ale w pierwszym przypadku trochę szkoda czasu jeśli by istniał gotowy sposób, natomiast ręczne kopiuj/wklej klatek wydaje się głupotą już na pierwszy rzut oka :)
Animacja może być też wyeksportowana do avi, być może w tym wypadku będzie łatwiej?

Offline Mr. Spam

  • Miłośnik przetworów mięsnych

Offline Karol

  • Użytkownik

  • +1
# Grudzień 24, 2012, 01:44:20
Ściągnij stąd http://www.afterwarp.net/products/asphyresphinx3 full package i wypakuj. W katalogu Tools masz programik FastTile, który elegancko załatwi to co chcesz.

Offline ShadowDancer

  • Redaktor

# Grudzień 24, 2012, 01:49:35
Kiedyś zrobiłem takiego toola w c#, jak chcesz to po świętach mogę go poszukać (ew. kilka osób na forum go ma, więc może ktoś się podzieli).

Offline Dab

  • Redaktor
    • blog

  • +1
# Grudzień 24, 2012, 17:35:19
Z gotowych narzędzi najprościej użyć imagemagick a dokładniej montage:
montage -border 0 -geometry 660x -tile 3x3 animacja_* razem.png

# Grudzień 24, 2012, 18:24:45
Używałem tego do łączenia grafik z Blendera.
W okienku podajemy nie ilość plików a max liczbę w animacji.
Zapisujemy firefoxem - prawy przycisk myszy na okienku.
<!DOCTYPE >
<html lang="pl-PL">
<script type="text/javascript">
var author="Uladzislau Parkhamovich"
var nr_img=0;
var nr_end_img=0;
var list_img = [];
var meaby_img=0;
function laduj()
{
var fullPath = document.getElementById('scierzka').value;
if(meaby_img<document.getElementById('max_liczba').value)
{
meaby_img=meaby_img+1;
var nazwa_pliku=meaby_img.toString();
while(nazwa_pliku.length<4)
nazwa_pliku="0"+nazwa_pliku;

console.log(fullPath+"/"+nazwa_pliku+".png");

list_img[nr_img]=new Image();
list_img[nr_img].onload=zaladowany;
    list_img[nr_img].onreadystatechange = function()
{
    if (this.readyState=='loaded'||this.readyState=='complete')
{
    zaladowany();
    }
    }
list_img[nr_img].onerror=laduj;
list_img[nr_img].src=fullPath+"/"+nazwa_pliku+".png";
};
}

function zaladowany()
{
rysuj();
console.log(nr_img);
nr_img=nr_img+1;
laduj();
}

function rysuj()
{
//indexOf('\\')   lastIndexOf('\\')   lastIndexOf('/'));
//substring(1);
   
var canvas2 = document.getElementById('rys');
if(canvas2.getContext){

canvas2.width=nr_img*list_img[0].width;
canvas2.height=list_img[0].height;

var context = canvas2.getContext('2d');

context.fillStyle = "rgba(0,0,0,0)";
context.fillRect(0,0,nr_img*list_img[0].width,list_img[0].height);

for(s=0;s<nr_img;s++)
{
context.drawImage(list_img[s],s*list_img[s].width,0);
}
}

}

window.onload = function ()
{
document.getElementById('Generuj').onclick = function(){laduj();};
}
</script>

<link rel="stylesheet" href="style.css" type="text/css">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title> Laczenie obrazkow </title>
</head>
<body>
<section id="posts">
<article class="post">
<p>Podaj scierzke obrazka</p>
<label for="name">Scierzka z obrazkami</label>
<input id="scierzka" type="text"  value="/home/wladek/Pulpit/Web/gra/pomoce/bitmapki" />
<br/>
<label for="name">Max liczba</label>
<input id="max_liczba" type="text"  value="100" />
<br/>
<input id="Generuj" type="submit" value="Gotowe">
<canvas id="rys" width="0" height="0">
ERROR:Brak obsługi canvas
</canvas>
</article>
</section>
</body>
</html>
« Ostatnia zmiana: Grudzień 24, 2012, 18:36:07 wysłana przez Władek »

Offline Rybopiotr

  • Użytkownik

# Grudzień 29, 2012, 19:37:38
Może ktoś podrzucić mi ten programik FastTile? Wolny internet mam :|

Offline Karol

  • Użytkownik

  • +1
# Grudzień 29, 2012, 19:57:45
Może ktoś podrzucić mi ten programik FastTile? Wolny internet mam :|
http://karol.infcore.net/FastTile.zip

Offline Rybopiotr

  • Użytkownik

# Grudzień 29, 2012, 20:08:23
Niech ci Perun w dzieciach wynagrodzi, wielkie dzięki :)