Builder.cz - Informacni server o programovani

Odběr fotomagazínu

Fotografický magazín "iZIN IDIF" každý týden ve Vašem e-mailu.
Co nového ve světě fotografie!

 

Zadejte Vaši e-mailovou adresu:

Kamarád fotí rád?

Přihlas ho k odběru fotomagazínu!

 

Zadejte e-mailovou adresu kamaráda:

Obraz z dlazdic jpgu

Seznam témat     Nová odpověď

Přihlásit se     Registrace     Zapomenuté heslo

Re: Obraz z dlazdic jpgu

Autor: tcesky

20:01:00 10.09.2011

[ital]zkusím a dam sem vědět [/ital] Kvuli me nemusis. To jak to vyresis me nezajima.

Zdravim

TC

Citovat příspěvek

 

Re: Obraz z dlazdic jpgu

Autor: zacatecnik XY

19:34:10 10.09.2011

Ano, to mě také na začátku napadlo, ukládat to průběžně do souboru (viz úplný začátek tohoto vlákna), je to asi fakt nejjednodušší a zároveň nejefektivnější cesta. Díky za nasměrování, zkusím a dam sem vědět.

Citovat příspěvek

 

Re: Obraz z dlazdic jpgu

Autor: tcesky

19:24:28 10.09.2011

Bitmapa je hlavicka nasledovana daty ukladanymi po radcich. Kdyz se predem rozhodnes jaky format bude bitmapa mit, tak je hlavicka jasna a data jednoducha. Pro jednu dlazdici budou relevantni vzdy shluky dat pro dany kousek radku. Stacilo by tudiz v pameti drzet dlazdice relevantni pro jeden radek a z nich to sekvencne psat do souboru.

Dle meho nazoru cokoliv rafinovanejsiho bude kontraproduktivni.

Zdravim

TC

Citovat příspěvek

 

Re: Obraz z dlazdic jpgu

Autor: zacatecnik XY

19:10:48 10.09.2011

OK. Díky za komplexní odpověď. Ano, bohužel bitmapa musí být celá. Já ji již nezobrazuji, to řeší externí program, který ji potřebuje v ale celou. Optimální se mi jeví TIFF, zkusím tedy nastudovat cximage, jestli to nebude třeba lepší cesta.

Citovat příspěvek

 

Re: Obraz z dlazdic jpgu

Autor: tcesky

18:57:24 10.09.2011

[ital]Můžu se tedy zeptat na jinou vhodnou třídu? TJPEGImage? [/ital]

Zeptat se muzes ale zadnou Ti neporadim.

Kdybych delal neco takhle sileneho, tak bych se napred zeptal jestli je potreba celou vyslednou bitmapu zobrazit najednou.

Kdyz ano, tak bych zasel do obchodu se zeptat kdy jim prijdou displeje s takovym rozlisenim. Do doby nez je budou mit tak bych se na to vykaslal.

Kdyz ne, tak bych si polozil otazku, zda data z nichz budu vzdy pouzivat jenom nejaky vysek musi byt ulozena ve formatu bitmapy.

Kdyz ano, tak bych ji psal a kousky z ni cetl podle specifikace formatu bitmapy a na TBitmap a spol bych se v teto fazi vykaslal.

Kdyz ne tak bych si navrhnul format ulozeni v nemz by se me aplikaci nejlepe navigovalo a na bitmapu bych rovnou zapomel.

Zdravim

TC

Citovat příspěvek

 

Re: Obraz z dlazdic jpgu

Autor: zacatecnik XY

18:42:14 10.09.2011

Můžu se tedy zeptat na jinou vhodnou třídu? TJPEGImage? Diky

Citovat příspěvek

 

Re: Obraz z dlazdic jpgu

Autor: tcesky

18:37:42 10.09.2011

Nekdy pomuze, nekdy ne. TBitmap v teto velikosti je ale no-go.

Zdravim

TC

Citovat příspěvek

 

Re: Obraz z dlazdic jpgu

Autor: zacatecnik XY

18:04:57 10.09.2011

Ano, plně si uvědomuji výslednou velikost. Nicméně cizí program to dovede (nemůžu ho využít, protože ještě s daty potřebuji jinak pracovat). Hledám tedy od počátku vhodný programovací postup. Nepomůže třeba skládání do menších bitmap, až z kterých složím výslednou bitmapu? Děkuji.

Citovat příspěvek

 

Re: Obraz z dlazdic jpgu

Autor: tcesky

17:55:59 10.09.2011

[ital]Dobrý den, ještě jednou díky za radu. Funkci jsem podle ní kompletně (snad) sestavil, ale mám problém, že pokud přesáhnu počet [bold]cca 300 jpgů,[/bold] program se přeruší s hlášením, že není dostatek prostoru k dokončení příkazu, kontroluji využití RAM i CPU a nedosahují žádných kritických hodnot. Prosím o radu. Níže je pro jistotu uveden kód. Předem děkuji. [/ital]

[code]
void __fastcall TForm1::sloucit(unsigned int nx,unsigned int ny) //parametry fce = tile count
{
//tile size:
unsigned int [bold]tx=200,ty=200;[/bold]
[/code]

S bitmapou 60 000 x 60 000 bude mit problemy nejeden system.

Zdravim

TC

Citovat příspěvek

 

Re: Obraz z dlazdic jpgu

Autor: zacatecnik XY

17:50:30 10.09.2011

Dobrý den, ještě jednou díky za radu. Funkci jsem podle ní kompletně (snad) sestavil, ale mám problém, že pokud přesáhnu počet cca 300 jpgů, program se přeruší s hlášením, že není dostatek prostoru k dokončení příkazu, kontroluji využití RAM i CPU a nedosahují žádných kritických hodnot. Prosím o radu. Níže je pro jistotu uveden kód. Předem děkuji.

void __fastcall TForm1::sloucit(unsigned int nx,unsigned int ny) //parametry fce = tile count
{
//tile size:
unsigned int tx=200,ty=200;

Bitmapa=new Graphics::TBitmap();
Bitmapa->Width=tx*nx;
Bitmapa->Height=ty*ny;

for(unsigned long i=0;ifor(unsigned long j=0;j{
TJPEGImage* Dlazdice_jpg = new TJPEGImage();
Dlazdice_jpg->LoadFromFile(AnsiString(i)+"_"+AnsiString(j)+".jpg");
//DeleteFileA(AnsiString(i)+"_"+AnsiString(j)+".jpg");nefunguje

//jpg->bmp
Graphics::TBitmap *Dlazdice=new Graphics::TBitmap();
Dlazdice->Assign(Dlazdice_jpg);
delete(Dlazdice_jpg);

//dlaždice vložena do výsledného obrázku na souřadnice
BitBlt(Bitmapa->Canvas->Handle,i*tx,j*ty,Bitmapa->Width,Bitmapa->Height,Dlazdice->Canvas->Handle,0,0,SRCCOPY);
delete(Dlazdice);
}


if(SaveDialog1->Execute()) //před tímto je hlášena chyba
{
//pro zkrácení kodu neuvádím
//uložení bitmapy do souboru

}

delete(Bitmapa);
}

Citovat příspěvek

 

Re: Obraz z dlazdic jpgu

Autor: tcesky

17:42:45 25.04.2011

[code]
tile size: tx * ty;

tile count: nx , ny

TBitmap *trg ... (tx*nx, ty*ny);

for(i=0;ifor(j=0;j{ TBitmap src (from i,j);
BitBlt(src->Handle, trg->Handle, i*tx, j*ty, ...)
}

trg-> (tiff, jpg, ...)
[/code]

Zdravim

TC

Citovat příspěvek

 

Obraz z dlazdic jpgu

Autor: zacatecnik XY

16:48:20 25.04.2011

Dobrý den,

chtěl bych požádat o radu. Potřebuji si napsat malou utilitu, která mi sloučí dlaždice JPGu do celkového jednoho obrázku (nejoptimálnější by byl výstup v TIFFu, ale ještě jsem nezkoumal, jak je to v Builderu s podporou tohoto formátu, takže může být v horším případě opět JPG). Velikost všech dlaždic je vždy stejná, pořadí je známé, grafický náhled v programu netřeba (prostě jde jen slučovací skript). vzhledem k tomu, že množství slučovaných dlaždic bude velké a tudíž je předpokládaná velká strojová náročnost, hledám co nejúspornější algoritmus (nějak bych to udělal, ale nerad bych se vydal špatným směrem). Má první myšlenka je, ukládat průběžný výsledek, tak abych ho nemusel celý držet v paměti...

Děkuji předem za případné rady.

Citovat příspěvek

 

 

 

Přihlášení k mému účtu

Uživatelské jméno:

Heslo: