Diskuze: Práce s různými formáty souborů
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.

Tvůrce

Zobrazeno 19 zpráv z 19.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
A co přesně chceš dělat? Nějak jsem nepochopil, na co se vlastně ptáš
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...
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ů...
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.
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í,...
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.
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.
Pokud vím, přípona souboru nic neříká o tom, jakého typu je ten soubor. Můžeme to pouze odhadovat.
Windows jsou navrženy tak, aby to tak fungovalo a ve většině případů se na to můžeme spolehnout.
Ano - již jsen na to přišel - jen u souborů nevím jak na to.
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..
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);
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();
}
Zkus to ukládat jako PNG. Ten umí průhlednost. U ostatních si definuješ výchozí barvu.
Přečti si příspěvky nahoře - nemohu předdefinovat formát. Co kopíruji PNG je...
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
Zobrazeno 19 zpráv z 19.