Autor |
Nachricht |
qualidat
Threadersteller
Dabei seit: 14.09.2006
Ort: Eichwalde bei Berlin
Alter: 63
Geschlecht:
|
Verfasst Fr 30.07.2010 12:20
Titel Inline-Grafiken mit IE? |
|
|
Gibt es irgend eine Möglichkeit, innerhalb eines HTML-Files (liegt in Datenbank) eine Grafik (Firmenlogo) unterzubringen, die
a) keine zusätzliche Datei bzw. Link darauf erfordert
b) kein zusätzliches Plugin erfordert
Ich habe nach dem Thema Inline-Grafik geforscht, nach Pixelgrafik und SVG:
http://aktuell.de.selfhtml.org/artikel/grafik/inline-images/
http://alphanemoon.com/2008/artikel/inline-svg-browser-test.xhtml
... lieder ist der IE in jedem Falle zu blöd dazu. Die Darstellung muss aber auf ThinClients unter WinXP Embedded SP2 (Maschinensteuerung) erfolgen. Irgend einen Trick verfügbar? Ich bin schon fast versucht, eine winzige Tabelle mit 1x1 Pix großen Zellen und farbigen Hintergründen zu ezeugen (das Logo hat nur 80 x80 Pix) ...
Zuletzt bearbeitet von qualidat am Fr 30.07.2010 12:21, insgesamt 1-mal bearbeitet
|
|
|
|
|
choise
Dabei seit: 01.02.2007
Ort: Würzburg
Alter: 35
Geschlecht:
|
|
|
|
|
Anzeige
|
|
|
qualidat
Threadersteller
Dabei seit: 14.09.2006
Ort: Eichwalde bei Berlin
Alter: 63
Geschlecht:
|
Verfasst Fr 30.07.2010 13:10
Titel
|
|
|
Es gibt keinen Server. Die HTML-Files werden generiert und in einer Datenbank abgelegt. In den Viewer kommen sie als String bzw. Datei.
Leider kann ich auch den IE auf den Clients nicht ersetzen, aktualisieren oder Plugins installieren. Das ist keine Surfstation, sondern eine Anwendung. Diese verwendet lediglich die IE-Rendering-Engine im Hintergrund (wie z.B. die Hilfeanzeige auch) um in ihrem eigenen Fenster HTML-Dateien anzuzeigen. Dabei handelt es sich um Arbeitszeit- und Leistungsnachweise.
Ich habe übrigens mal mittels einiger Zeilen RealBasic eine HTML-Tabelle mit Zellen als Pixel erzeugt ...
Tabellen-Grafik
Damit scheint sogar der IE klarzukommen. Nur die Datenmenge liegt ein mehrfaches über der der eigentlich auf gleicher Seite anzuzeigenden Informationen. Hat jmd. Ideen, wie die zu verringern wäre?
Zuletzt bearbeitet von qualidat am Fr 30.07.2010 13:20, insgesamt 2-mal bearbeitet
|
|
|
|
|
Mac
Dabei seit: 26.08.2005
Ort: Köln
Alter: 62
Geschlecht:
|
Verfasst Fr 30.07.2010 14:07
Titel
|
|
|
CSS Definitionen sinnvoll vergeben?[/code]
|
|
|
|
|
Smooth-Graphics
Dabei seit: 22.05.2006
Ort: -
Alter: -
Geschlecht:
|
Verfasst Fr 30.07.2010 14:14
Titel
|
|
|
Kann man nicht die Bilder ebenfalls in der Datenbank abspeichern und daraus auslesen?
|
|
|
|
|
heiko_rs
Dabei seit: 06.02.2008
Ort: Berlin
Alter: -
Geschlecht:
|
Verfasst Fr 30.07.2010 14:39
Titel
|
|
|
Mac hat geschrieben: | CSS Definitionen sinnvoll vergeben? |
Absolut - wenn im konkreten Falle wirklich gar nichts anderes geht, lässt sich das Tabellenbeispiel per CSS ganz erheblich verschlanken bzw. von Redundanz befreien. Die geringste Dateigröße bekäme man z.B. mit <b class="c1"></b>, 80x80 mal im HTML (nur die Zahl der Klasse muss jeweils angepasst werden), wobei die am häufigsten auftretende Farbe sogar gar keine Klasse braucht, und im CSS dann einfach nur
Code: | b {
float: left;
width: 1px;
height: 1px;
background: #fff;
overflow: hidden; /* IE 6 */
} |
und dann für andere Farben als Weiß (oder welche Farbe auch immer die häufigste ist) nur noch Regeln wie diese:
Code: | .c1 {
background: #000;
} |
(für insgesamt 30 Farben bräuchte man also 29 Regeln wie letztere.)
Keine Frage, dass sowas natürlich eine fiese Konstruktion ist, aber wie gesagt, falls es wirklich absolut nicht anders geht...
Zuletzt bearbeitet von heiko_rs am Fr 30.07.2010 14:40, insgesamt 1-mal bearbeitet
|
|
|
|
|
zweitaccount
Dabei seit: 25.01.2008
Ort: -
Alter: -
Geschlecht: -
|
Verfasst Mo 02.08.2010 14:45
Titel
|
|
|
Hi, rein interessehalber habe ich heiko_rs Vorschlag mal umgesetzt.
Ein 80x80px 16-Farben-Gif hätte so ca. 180 Kbyte, ein jpg dann
gleichmal ca. 1 Mbyte wg. x-Farben.
Vielleicht will ja jemand diesen Wahnsinn einsetzen:
Code: | <?php
/**
* @function Erzeugt Bild aus einzelnen 'Div-Pixeln'
* @param [string] Filepath
* [number] Zoomfaktor
* [string] Id
* @return [array] 'styles' => Styles
* 'html' => Horror-Html
*/
function getImageAsHTML($filepath=false,$zoom=1,$id=false) {
$return = array('styles'=>'','html'=>'');
if(!$filepath || !file_exists($filepath)) return $return;
$infos = getimagesize($filepath);
if ($infos[2] === 1) $image = imagecreatefromgif($filepath);
elseif($infos[2] === 2) $image = imagecreatefromjpeg($filepath);
elseif($infos[2] === 3) $image = imagecreatefrompng($filepath);
else return $return;
$pixels = array();
$colors = array();
for($h=0;$h<$infos[1];$h++):
for($b=0;$b<$infos[0];$b++):
$colorId = imagecolorat($image,$b,$h);
if(!in_array($colorId,$colors)) $colors[] = $colorId;
$pixels[] = $colorId;
endfor; // breite
endfor; // hoehe
$suffix = ($id) ? '#'.$id : '';
$styles = '<style type="text/css">'."\n";
$styles .= $suffix.'.divImage b { display:block;width:'.$zoom.'px;height:'.$zoom.'px;float:left;overflow:hidden; } '."\n";
foreach($colors as $key => $colorId) {
$rgbValue = imagecolorsforindex($image, $colorId);
$rgbString = $rgbValue["red"].','.$rgbValue['green'].','.$rgbValue['blue'];
$styles .= $suffix.'.divImage .c'.$colorId.' { background:rgb('.$rgbString.') }'."\n";
}
$styles .= '</style>'."\n";
$html = '<div ';
$html .= ($id) ? 'id="'.$id.'" ' : '';
$html .= 'class="divImage" style="width:'.($infos[0]*$zoom).'px;height:'.($infos[1]*$zoom).'px">';
foreach($pixels as $pixel) {
$html .= '<b class=c'.$pixel.'></b>';
}
$html .= '</div>'."\n";
return array('styles'=>$styles,'html'=>$html);
}
$gifImage = getImageAsHtml('popcorn.gif',1,'myGif');
$jpgImage = getImageAsHtml('icecold.jpg',1,'myJpg');
?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>getImageAsHTML</title>
<?=$gifImage['styles']?>
<?=$jpgImage['styles']?>
</head>
<body>
<?=$gifImage['html']?>
<?=$jpgImage['html']?>
</body>
</html>
|
|
|
|
|
|
heiko_rs
Dabei seit: 06.02.2008
Ort: Berlin
Alter: -
Geschlecht:
|
Verfasst Mo 02.08.2010 15:27
Titel
|
|
|
zweitaccount hat geschrieben: | Vielleicht will ja jemand diesen Wahnsinn einsetzen |
Freiwillig sicher nicht
Allerdings komme ich nur auf ca. 90 kb: Die 6.400 benötigten <b>-Elemente haben 45 kb, und durch ihre Klassen wird es sich nochmal ungefähr verdoppeln, da nicht alle Elemente eine Klasse brauchen. Man kann sogar auf weitere Klassen verzichten, wenn man außer <b> noch weitere Elemente wie <i> etc. dazunimmt.
Übrigens ist das CSS dabei nicht der Rede wert: Für 30 Farben hat es nur ca. 0,8 kb.
Aber so oder so: Natürlich ist das ein Wahnsinn und wirklich nur als allerletzter Ausweg gedacht
|
|
|
|
|
|
|
|
Ähnliche Themen |
inline frames
Inline Style und ...?
INLINE BORDER CSS
inline IE hack
inline frames 2
{css} wie hover inline definieren
|
|