IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze: Práce s různými formáty souborů

Aktivity
Avatar
matesax
Tvůrce
Avatar
matesax:2.10.2012 14:47

Dobrý den,
hodlám zpracovávat různé souborové formáty, a moc se mi nechce pouštět se do výpisu všech typů. Tedy prvně bych si chtěl být jist, že není lehčí řešení. Láká mne využít vyjímek. Děkuji za rozumné rady...

(Například nějak detekovat obecný typ - třeba obrázek - a již se nestarat o přesný formát - jen jej nějak detekovat a dále s ním pracovat...)

 
Odpovědět
2.10.2012 14:47
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na matesax
David Hartinger:2.10.2012 15:03

A co přesně chceš dělat? Nějak jsem nepochopil, na co se vlastně ptáš :)

Nahoru Odpovědět
2.10.2012 15:03
New kid back on the block with a R.I.P
Avatar
matesax
Tvůrce
Avatar
Odpovídá na David Hartinger
matesax:2.10.2012 15:16

No chtěl bych obrázky zobrazovat v pictureboxu, texty v textboxu, atd... + nejrůznější manipulace. No a nemohu si jen tak hrát s typy... Tedy nemohu vše ukládat do jednoho formátu. Takže zrovna u obrázků (nesouborových) bych potřeboval zjistit jejich konkrétný typ... No a pak ta práce se soubory... Tou manipulací myslím základní úpravu obrázků - uvidím, jak moc budu schopen udělat jejich editaci. Textové soubory bych chtěl slučovat + možnost regex. Atp...

 
Nahoru Odpovědět
2.10.2012 15:16
Avatar
matesax
Tvůrce
Avatar
Odpovídá na David Hartinger
matesax:3.10.2012 12:41

OK - obrázky v programu převádím do MemoryStreamu a ten ukládám do sólo složky (Iamges) do XML. Texty z programu buď do rtf/txt - jiný formát se snad ani kopírovat nedá (ukládat do schránky). A soubory (včetně ostatních textových typů) řeším tedy podle dlouhého seznamu typů...

 
Nahoru Odpovědět
3.10.2012 12:41
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na matesax
David Hartinger:3.10.2012 12:49

Pořád nevím, co chceš udělat. Uložil bych klidně vše do jedné složky a podle přípony rozpoznával, co je to za soubor. Podle toho bych ho poté načetl.

Nahoru Odpovědět
3.10.2012 12:49
New kid back on the block with a R.I.P
Avatar
matesax
Tvůrce
Avatar
Odpovídá na David Hartinger
matesax:3.10.2012 16:42

Shromaždiště dat ze schránky - s velkým ulehčením práce - možnost přímé úpravy, slučování,... U textů regex - pro neprogramátory... No a první věc - přenesení nároků na pevný disk - uložení... A právě u obrázků bych rád bezztrátovost - napadlo mne ukládat do png, ale tím jsem si nebyl jistý, ten MemoryStream jistý je... A k souborům si ukládám jen adresy a ty pak testuji - popř. vymaži. Tedy stojí mne to jen jeden texťák na soubory, a obrázky a texty tak náročné nejsou... A při vkládání bych chtěl, aby vyjel dialog s různými možnostmi... A ještě bude mini topmost panel se základními funkcemi - právě na slučování, přenášení,...

Editováno 3.10.2012 16:44
 
Nahoru Odpovědět
3.10.2012 16:42
Avatar
Kit
Tvůrce
Avatar
Odpovídá na David Hartinger
Kit:4.10.2012 8:50

Netuším, z jaké schránky chce matesax stahovat soubory. Pokud z e-mailové, tak místo přípony je lepší se orientovat podle MIME. Snadno se tím odfiltruje malware.

Nahoru Odpovědět
4.10.2012 8:50
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
matesax
Tvůrce
Avatar
Odpovídá na Kit
matesax:4.10.2012 13:09

Normální - Ctrl plus V, Ctrl plus C...

 
Nahoru Odpovědět
4.10.2012 13:09
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na matesax
David Hartinger:4.10.2012 13:21

Tam máš přeci informaci o tom, co za typ ve schránce je. Normálně bych to uložil s příponou a podle přípony znovu načetl.

Nahoru Odpovědět
4.10.2012 13:21
New kid back on the block with a R.I.P
Avatar
Kit
Tvůrce
Avatar
Odpovídá na David Hartinger
Kit:4.10.2012 13:30

Pokud vím, přípona souboru nic neříká o tom, jakého typu je ten soubor. Můžeme to pouze odhadovat.

Nahoru Odpovědět
4.10.2012 13:30
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na Kit
David Hartinger:4.10.2012 13:56

Windows jsou navrženy tak, aby to tak fungovalo a ve většině případů se na to můžeme spolehnout.

Nahoru Odpovědět
4.10.2012 13:56
New kid back on the block with a R.I.P
Avatar
matesax
Tvůrce
Avatar
Odpovídá na David Hartinger
matesax:4.10.2012 15:47

Ano - již jsen na to přišel - jen u souborů nevím jak na to.

 
Nahoru Odpovědět
4.10.2012 15:47
Avatar
Kit
Tvůrce
Avatar
Odpovídá na David Hartinger
Kit:4.10.2012 15:58

Ano. Zbytek je malware :)

Nahoru Odpovědět
4.10.2012 15:58
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
matesax
Tvůrce
Avatar
Odpovídá na David Hartinger
matesax:4.10.2012 18:32

Tak jsem narazil na další problém - alfakanál - tedy alespoň to na něj typuji - jednoduše - průhledné obrázky se uloží s černým pozadím..

 
Nahoru Odpovědět
4.10.2012 18:32
Avatar
David Jančík
Vlastník
Avatar
Odpovídá na matesax
David Jančík:4.10.2012 18:37

A jak je ukládáš?
Já používám tohle k ukládání miniatur a funguje to perfektně:

avatar.GetThumbnailImage(50, 50, null, IntPtr.Zero).Save(id + "_avatar.png", System.Drawing.Imaging.ImageFormat.Png);
Nahoru Odpovědět
4.10.2012 18:37
Zapomeň, že je to nemožné a udělej to ;)
Avatar
matesax
Tvůrce
Avatar
Odpovídá na David Jančík
matesax:4.10.2012 18:45
public void AddItem(Image picture)
{
    picture.Save(dataDirectory + @"\Picture" + (Directory.GetFiles(dataDirectory, "*" + maninManager.GetFileExtension(picture.RawFormat)).Length + 1) + maninManager.GetFileExtension(picture.RawFormat), picture.RawFormat);

    ActualizeListOfElements();
}
 
Nahoru Odpovědět
4.10.2012 18:45
Avatar
David Jančík
Vlastník
Avatar
Odpovídá na matesax
David Jančík:4.10.2012 18:59

Zkus to ukládat jako PNG. Ten umí průhlednost. U ostatních si definuješ výchozí barvu.

Nahoru Odpovědět
4.10.2012 18:59
Zapomeň, že je to nemožné a udělej to ;)
Avatar
matesax
Tvůrce
Avatar
Odpovídá na David Jančík
matesax:4.10.2012 19:02

Přečti si příspěvky nahoře - nemohu předdefinovat formát. Co kopíruji PNG je...

 
Nahoru Odpovědět
4.10.2012 19:02
Avatar
David Jančík
Vlastník
Avatar
Odpovídá na matesax
David Jančík:4.10.2012 19:18

To je ale jedno v jakém formátu je. Můžeš ho překonvertovat. Jinak si nadefinuj barvu pozadí. Je tam metoda Clear. Něco jako:

using(Graphics g = Graphics.FromImage(b)) {
        g.Clear(Color.White);
        g.DrawImageUnscaled(myImage, 0, 0);
    }

Nebo taky

Bitmap.SetTransparencyKey, Bitmap.MakeTransparent
Nahoru Odpovědět
4.10.2012 19:18
Zapomeň, že je to nemožné a udělej to ;)
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 19 zpráv z 19.