Diskuze: HTML s přístupem k obrázkům v knihovně DLL
V předchozím kvízu, Online test znalostí HTML a CSS, jsme si ověřili nabyté zkušenosti z kurzu.


DLL jsem nikdy nepouzival a ani bych nespolehal na to, ze to browsery
podporuji. Mozna najit nejaky JS ktery to umi otevrit a vycucat z nej obrazky.
Nebo bych sel do Zipu.
Base 64 koduje soubor z 8 bitoveho kodovani na 6 bitove. cili, narust velikosti
by mel byt 8/6, coz je (8/6 * 4/4 * 4/4 = 132/~100 = ) 1.32, 30% narust.
Jo, a favicon nekdy prohlizece zobrazuji se zpozdenim.Maji nakesovanou starou verzi. Zkus soubor zkopirovat do index2.html, treba to pak zobrazi.
Dík za odpovědi.
Co se DLL týče, uměl z ní obrázky číst HTML předhozený Internet Exploreru 7, tak to snad nějak musí umět i MS Edge poslední verze. Ale s jakou syntaxí?
Klidně bych DLL nahradil souborem ZIP, jenže jsem nikde nenašel, jak v HTML načíst obrázek ze zipu. Zkoušel jsem
<IMG src=Obrázky.zip#Obrázek.gif>
<IMG src=file://Obrázky.zip#Obrázek.gif>
<IMG src=zip://Obrázky.zip#Obrázek.gif>
Zkoušel jsem i zadat celou cestu
<IMG src='D:/celá cesta k příručce/Obrázky.zip#Obrázek.gif'>
<IMG src='file://D:/celá cesta k příručce/Obrázky.zip#Obrázek.gif'>
<IMG src='zip://D:/celá cesta k příručce/Obrázky.zip#Obrázek.gif'>
To je ovšem zoufalé střílení naslepo a nefunguje to.
Když píšeš o zipu - umíš mi poradit, jak ho použít v HTML5 (nikoli v PHP!) a/nebo v jemu odpovídajícím javascriptu krátkým a hlavně rychlým prográmkem? V MS Edge otvírám jeden jediný HTML soubor (zvíci 1,16 MB) s téměř stovkou obrázků; dosavadní načítání s obrázky coby samostatnými soubory trvá pouhé 2 - 3 vteřiny.
Co se base64 týče, pro velké obrázky (těch mám asi 30) je to prakticky nepoužitelné - dlouhatááánský string do žádného textového editoru nevložím, takže base64-stringy by v html souboru musely být jako stringy, javaskriptem sestavené z dílčích kusů a skriptem vkládané do atributů src jednotlivých <IMG>. Navíc je to neohrabané i pro malé obrázky - při sebemenší změně v obrázku bych ho musel znovu překládat do base64 a znovu (pro velké obrázky po částech) vkládat do html souboru.
Co se favourite icon týče, jde vyloženě o hrubou chybu
Microsoftu, když to do poslední jejich aktualizace fungovalo. MS Edge načetl
soubor html, provedl startovní skript a poté zobrazil na pacce karty ikonu.
Teď na ikonu kašle a nezobrazí ji ani po desítkách minut. Přinutit
majitele a vedení Microsoftu k opravě chyby by dokázal jen malý dvorek a
velký bič , ale neznám
nikoho v USA, kdo by se toho ujal
.
Jen připomínám, že vše je na lokálním disku, nepotřebuji přístup k internetu, je to určeno pro jediného uživatele a pro spouštění výlučně v MS Edge. Chtěl bych mít jediný textový soubor html a místo složky se spoustou obrázků mít jediný obrázkový soubor. Jsem prostě ze staré školy a nemám rád aplikace či dokumenty, vyžadující desítky a desítky souborů.
google = javascript open image from zip
google = javascript open image from dll
google = javascript open image from svg
Moc Ti děkuji za snahu mi pomoci, ale tohle všechno mám za sebou. Na webu se najde tisíc odkazů, jak do html stránky dostat obrázky (třeba GIFy) z DLL. Ve všech je (hůře či lépe, zoufale kostrbatě či jednodušeji) uvedeno jednoduchoučké schéma s cestou k DLL v <BASE> a s pouhými čísly obrázků v tazích <IMG>:
<HEAD>
<BASE href='res://D:\cesta k mojí knihovně.dll/GIF/#'>
</HEAD>
<BODY>
<IMG src=2>
<IMG src=7>
</BODY>
a to je právě to, co v MS Edge nefunguje.
Pro čtení obrázků javascriptem ze ZIP se zase všude používá
knihovna-monstrum jszip z webu, neboli pro prohlížení
stránky je nutné připojení k síti, a kamarád bude příručku používat
bez možnosti přistoupit k webu (v práci má kromě pošty a podobných věcí
web zakázaný).
Navíc, nakolik jsem se ve webových ukázkách skriptů orientoval, to, co
skript dostane ze zipu, dál zpracovává značně komplikovaně.
Právě to jsou důvody, proč si s tím nevím rady, ač pořád hledám,
jestli by se někde nenašlo něco (mj. krátké a jednoduché), co funguje. Už
jsem si jist, že nikoli. Existuje-li jednoduché řešení pro
MS Edge, nesmím ho už hledat, musím hledat něco úplně jiného, abych na
ono řešení náhodně narazil.
Tak Ti ještě jednou děkuji za pomoc
Aha. Takze, takhle to s tebou je...
<img src="https://www.gstatic.com/images/branding/googlelogo/2x/googlelogo_color_84x28dp.png">
Kdyz si tu adresu das do prohlizece, tak ti zobrazi obrazek.
Kdyz si pak kliknes na menu Soubor > Ulozit jako, tak ti obrazek ulozi na disk.
Takze mas 2 moznosti:
1. <img src="https://www.gstatic.com/images/branding/googlelogo/2x/googlelogo_color_84x28dp.png">
2. <img src="img/googlelogo_color_84x28dp.png"> ulozeno na disku v adresari meho webu
Totez funguje pro javascript.
<script src="ciziweb/jszip.min.js"></script> opet, adresu das do prohlizece a soubor ulozis
<script src="mujweb/jszip.min.js"></script>
Děkuji, ale tohle také vím. Soubor jszip.min.js je psaný jako jeden dlouhatánský řádek (Rus by řekl car-řádek) a je obrovský, protože krom toho, co potřebuji, umí spoustu dalších věcí. Je otázkou, zda je lepší mít v podsložce s html souborem ke stovce obrázků, nebo jeden (velký) ZIP a zbytečně velikou knihovnu JS, která jen supluje práci programu zip.exe, vrací mi obrázek v podobě binárního stringu, jenž bych buď musel ukládat na disk a číst z disku, nebo suplovat práci konvertoru do base64.
Já jsem prostě ze staré školy a chci mít všechno (krom
jistých částí svého těla ) co nejmenší, kompaktní a programátorsky průzračné. Když
jsem se mnoho let živil programováním v nejrůznějších jazycích, také
jsem často použil nějakou cizí knihovnu, ale vždycky jsem z ní poté
vyházel všechno zbytečné a to, co jsem potřeboval, se mi obvykle podařilo
přepsat do o dost lepšího a rychlejšího kódu. Kdysi se např. pro
třídění velkých databází používal algoritmus zvaný
QuickSort. Dostal jsem jeho zdroják v Pascalu, což mi pro
pascalské programy teoreticky stačilo, ale stejně jsem věnoval týden tomu,
abych pochopil, jak přesně funguje, celý ho přepsal do assembleru (tím se
nejen zrychlil, ale též významně zkrátil) a toto pak linkoval do
Pascalu.
Dnes se programuje úplně jinak, programy používají spousty obrovských
knihoven, ač z každé z nich potřebují jen jednu či dvě funkce. Zaplácá
to disk, zaplácá to operační paměť a program se plouží. Jen výrobci
hardwaru si mnou ruce, protože uživatelé jsou takto nevybíravě tlačeni ke
kupování větších a větších disků, větších a větších pamětí a
rychlejších a rychlejších procesorů. Před pár lety jsem to zkritizoval
epigramem:
Program žádá větší výkon hardwaru?
Potom patří jednoznačně do sběru.
Nic, promiň, že jsem se rozkecal. Když neexistuje nic jednoduchého a krátkého, smířím se se spoustou obrázků v podsložce souboru html.
Jako, ty chces neco, co ten prohlizec neumi, ale nekdo na to udelal js, ktery
to umi a ten tam nechces pouzit.
Tak to nahrej do slozky, obrazky a nacitej si to javascriptem nebo primo do img
tagu.
Vic ti asi neporadim, neresil jsem to. Snad ti poradi nekdo jiny.
Mimochodem, quicksort je jen jednim z algoritmu. Jestli si vzpomenes na
insert-sort, tak tam se porovnava se serazenym polem zhora. Kdyz to upravis a
bude porovnavat s prostredkem, postupne eliminujes pole casto mnohem rychleji.
Vysledek je, ze pocet tahu je asi o 15% mensi nez quicksort. Nevyhodou je, ze
vkladas doprostred pole na ucritou pozici, takze zbytek serazeneho pole musis
odsunout. Coz je operace na prd, kdyz se jedna o obrovske pole.
A pak je tu algoritmus, ktery je tez podobny merge-sort. Nejlepe by ho vystihl
pojem slevani. Funguje tak, ze veme 1 a 1 a vytvori usporadanou dvojici. Totez
pro ostatni. A pak sleva dvojice do ctveric. Atd. Opet je tam nejakych 5% proti
q-sort. Nevyhoda je, ze je dobre pouzit dvojnasob pameti. Prelevas z leva
doprava a pak prhodis pointry poli a delas to znova. Kdyz velke hodnoty v poli,
muzes to resit zapisem ineteger-indexu na puvodni. Pak to sezere jen dvojnasobek
pameti pro indexy. Ale, principialne je to hrozne jednoduchy algoritmus na
pochopeni.
Na tomhle jsem treba pracoval ja v dobe, kdy se objevil q-sort, ale nebyl jsem
jeste schopny ten algoritmus poskladat. Krasne mi fungoval, ale spatne jsem tam
mel start-end pozice, protoze jsem pouzil jinou verzi. Ja jsem to totiz resil
tak, ze jsem si rekl, cele pole obsahuje seznam serazenych poli. Treba zjistit
jejich start-end a slit je postupne jedno a jedno do jednoho. Ale, ukazalo se,
pri testech, ze druha myslenka, zacit jednojici a jednojici a slit ji do
dvojice, je praktictejsi, lepe se pise a neni treba si ukladat indexy a je o par
kroku lepsi pro nahodny soubor.
Mimochodem, vetsina alg. q-sort selhava, kdyz mas pole serazene DESC, zhora
dolu. Algoritmus prechazi na bubble sort, porovnej temer kazdy s kazdym.
"Program žádá větší výkon hardwaru? Potom patří jednoznačně do
sběru."
Fajn, ale praxe ukazuje, ze zakaznik si vybira program podle toho, co mu
nabulikuje manazer, co mu nabulikuje propagace na webu, v letaku a podle toho,
jak vypada
https://github.com/…jszip.min.js
Jo, je to 100k, protoze je to cross browser a dokaze to pracovat se soubory
ruznym zpusobem, take v ruznych prohlizecich.
Jednoradkove nudlicce se rika minifikace. Je to programem predelane na nudlicku,
eliminovane komenty a prejmenovane nazvy promenych na jednopismenkove.
Pokud mas radeji kousicky kodu, ikdyz se nechystas do toho vrtat, tak je tam
LIB
https://github.com/…e/master/lib
Bohuzel, zklamani je, ze tam nemaji cely kod bez minifikace. To meli mit tady.
Jao, jsou js-parsery, co ti to predelaji na kod, ale stale se nezbavis
jednopismenkovych nazvu promenych. Bud je to zamer nebo pochybeni autora.
https://github.com/…ist/jszip.js
Jako, prislo mi lepsi, pouzit zip nez pokouset dll, ktere, kdo vi, jakou ma podporu. Navic, vetsina lidi ma chrome v pc. Edge pouziva chrome jadro. Mozna proto neumi to dll.
Máš samozřejmě pravdu. Jen jsem marně doufal, že existuje něco kratičké a průzračné. Zjevně nikoli.
Já jsem opravdu ze staré školy, ba přímo z programátorského
starověku, jehož filozofie programování je dnes už jen těžko
pochopitelná, takže pro dnešek jsem beznadějný případ. To máš totéž,
jako kdyby se dnes objevil středověký rytíř a zjistil, že za uplynulá
staletí byl pojem rytířství redukován (aspoň podle filmů
z produkce USA) na obrněnce, mlátící se navzájem sekerami. (A hlavně se
kolem těch obrněnců musí motat dlouhovlasá blondýna s implantáty v
ňadrech, která chodí jen v kožených kraťasech a podprsence, ačkoli
ostatní jsou teple oblečeni, a na potkání kope lidi do hlavy. )
O QuickSortu jsem se zmínil, jen abych dokumentoval, že mi hotové produkty nikdy nevyhovovaly, dokud jsem je neminimalizoval. Tehdy pro osobní počítače ani nebyl jiný pořádný třídič k mání. Až když jsem se přestal živit programováním, začaly se objevovat další algoritmy překlápěné ze sálových počítačů na PC, jak se zvyšovala schopnost PC zvládat jejich vysoké procesorové a paměťové nároky. Pak jsem třídění potřeboval už jen výjimečně a jen pro tak malé databáze, že to i kratičký a průzračný BubbleSort zvládá za zlomek vteřiny.
A největší pravdu máš v tom, že uživatelé komerčních aplikací mají mozky vymyté agresivními a arogantními reklamami, které jsou ochotné nalhat cokoli, aby se šunt prodal. (Mimochodem - lhát pro prachy je typickým znakem psychopatů; jde o tzv. psychopaty v bílých límečcích, na rozdíl od mnohem méně nebezpečných psychopatů - sériových vrahů.)
Zobrazeno 11 zpráv z 11.