mediengestalter.info
FAQ :: Mitgliederliste :: MGi Team

Willkommen auf dem Portal für Mediengestalter

Aktuelles Datum und Uhrzeit: Mi 21.11.2018 10:55 Benutzername: Passwort: Auto-Login

Thema: Inline-Grafiken mit IE? vom 30.07.2010


Neues Thema eröffnen   Neue Antwort erstellen MGi Foren-Übersicht -> Allgemeines - Nonprint -> Inline-Grafiken mit IE?
Autor Nachricht
qualidat
Threadersteller

Dabei seit: 14.09.2006
Ort: Berlin
Alter: 58
Geschlecht: Männlich
Verfasst Fr 30.07.2010 11:20
Titel

Inline-Grafiken mit IE?

Antworten mit Zitat Zum Seitenanfang

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 11:21, insgesamt 1-mal bearbeitet
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
choise

Dabei seit: 01.02.2007
Ort: Würzburg
Alter: 30
Geschlecht: Männlich
Verfasst Fr 30.07.2010 11:57
Titel

Antworten mit Zitat Zum Seitenanfang

ie6 auch?

weil für ie7 gibts folgenden artikel: http://dean.edwards.name/weblog/2005/06/base64-ie/
schonmal getestet? oder kannst du auch nicht serverseitig arbeiten?
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
Anzeige
Anzeige
qualidat
Threadersteller

Dabei seit: 14.09.2006
Ort: Berlin
Alter: 58
Geschlecht: Männlich
Verfasst Fr 30.07.2010 12:10
Titel

Antworten mit Zitat Zum Seitenanfang

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 12:20, insgesamt 2-mal bearbeitet
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
Mac

Dabei seit: 26.08.2005
Ort: Zierikzee
Alter: 56
Geschlecht: Männlich
Verfasst Fr 30.07.2010 13:07
Titel

Antworten mit Zitat Zum Seitenanfang

CSS Definitionen sinnvoll vergeben?[/code]
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
Smooth-Graphics

Dabei seit: 22.05.2006
Ort: -
Alter: -
Geschlecht: Männlich
Verfasst Fr 30.07.2010 13:14
Titel

Antworten mit Zitat Zum Seitenanfang

Kann man nicht die Bilder ebenfalls in der Datenbank abspeichern und daraus auslesen?
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
heiko_rs

Dabei seit: 06.02.2008
Ort: Berlin
Alter: -
Geschlecht: Männlich
Verfasst Fr 30.07.2010 13:39
Titel

Antworten mit Zitat Zum Seitenanfang

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 13:40, insgesamt 1-mal bearbeitet
  View user's profile Private Nachricht senden
zweitaccount

Dabei seit: 25.01.2008
Ort: -
Alter: -
Geschlecht: -
Verfasst Mo 02.08.2010 13:45
Titel

Antworten mit Zitat Zum Seitenanfang

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: muahaha

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>
  View user's profile Private Nachricht senden
heiko_rs

Dabei seit: 06.02.2008
Ort: Berlin
Alter: -
Geschlecht: Männlich
Verfasst Mo 02.08.2010 14:27
Titel

Antworten mit Zitat Zum Seitenanfang

zweitaccount hat geschrieben:
Vielleicht will ja jemand diesen Wahnsinn einsetzen

Freiwillig sicher nicht *zwinker*

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 *zwinker*
  View user's profile Private Nachricht senden
 
Ähnliche Themen inline frames
inline frames 2
Inline Style und ...?
inline IE hack
Problem mit display:inline
Dreamweaver und inline Styles?
Neues Thema eröffnen   Neue Antwort erstellen
MGi Foren-Übersicht -> Allgemeines - Nonprint


Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst an Umfragen in diesem Forum nicht mitmachen.