Hilfe - Suche - Mitglieder - Kalender
Vollansicht: MrType 01.00.00 beta
Forum Sefrengo.org > Downloads > Alpha, Beta ... Vorabversionen
Seiten: 1, 2
amk
Modulname:
MrType

Version:
01.00.00

Status:
beta

Bechreibung:
MrType generiert mittels TrueType-Schriftarten aus einem entsprechenden Text
eine PNG-, GIF- oder JPEG-Bilddatei und bindet jene z.B. als CSS-Hintergrund-
definition ein.

So sind bspw. attraktive dynamische Headlines in beliebiger Schrift ohne den
Einsatz von Bildbearbeitungssoftware realisierbar.



Features:
- flexible Konfiguration von Schriftart, -farbe, -größe, Zeilenhöhe etc.
- Wordwrap abhängig von der Bildbreite
- automatische oder manuelle Bestimmung der Bildbreite oder -höhe

Autor:
Alexander M. Korn (amk)

Lizenz:
Freeware (siehe Lizensbestimmungen in der ZIP-Datei)

Benötigte Sefrengo Version:

>=Sefrengo 1.2

Benötigte PHP-Features/-Konfiguration:
GD-Lib ab Version 2 inkl. FreeType-Unterstützung
SAFE MODE deaktiviert (off)

Installation:
Legen Sie innerhalb Ihres Sefrengo-Projektordners (bspw. "projekt01/") im
Unterverzeichnis "cms/" einen neuen Ordner "fonts/" an.
Kopieren Sie beliebige TrueType-Schriftarten in dieses Verzeichnis.
Wechseln Sie in Ihrer Sefrengo Version in den Bereich "Design->Module".
Am unteren Ende des Bereichs befindet sich ein Uploadfeld.
Wählen Sie hier die gewünschte "*.cmsmod"-Datei aus.
Mit einem Klick auf das Diskettensymbol wird das Modul in das CMS importiert.
Wählen Sie nun in der MrType-Modulkonfiguration eine Schriftart aus und
speichern Sie die Modulkonfiguration.
Das Modul ist nun innerhalb des CMS nutzbar.

Hinweise:
Im Projekt-Ordner legt das Modul automatisch einen Ordner "dynimg/"
an. Später befinden sich darin die dynamischen Grafiken.

Es kann passieren dass eine Erzeugung des "dynimg/"-Ordners nicht möglich
ist. In diesem Fall muss der Ordner per FTP o.ä. erzeugt werden. Zusätzlich
benötigt dieser Ordner dann volle Schreib-/Leserechte (CHMOD 0777).

Je nach Server bzw. PHP-Version kann die Bildformatunterstützung variieren.
Die Modul-Konfiguration überprüft die Möglichkeiten Ihrer Server bzw. PHP-
Version und stellt ggf. nur verfügbare Bildformate zur Auswahl.

Bekannte Probleme:
Je nach Anwendung können unter Umständen Bilder im "dynimg/"-Ordner
verbleiben, die nicht weiter genutzt werden. Die Säuberungsroutine ist noch
nicht ausreichend getestet bzw. optimal umgesetzt.


QUELLTEXT
Changelog legend:
# -> Bug Fix
+ -> Addition
^ -> Change
- -> Removed
! -> Note

01.00.00 beta - 2006-11-01
------------------------------------------------------------------------------------------------
+ GIF support
+ additional modul settings (font path, image path)
+ error messages for missing image path & font file
+ gdlib feature check improved
^ if possible (gdlib-feature) transparent images will be generated as palette-images
^ improved {bgstyle}-definition
^ some other internal things improved and changed, known bugs fixed

00.09.05 preview - 2006-09-05
------------------------------------------------------------------------------------------------
+ additional transparent background option
+ additional right side and bottom distance options (additional width/height values - useful
  on negative line height / letter spacing values and bad auto width/height calculation results)
^ letter spacing / line-height calculation corrected/improved
- more or less unnecessary code (big performance improvements)

00.09.00 preview - 2006-09-03
------------------------------------------------------------------------------------------------
! first release



soooo - leider ist's keine final geworden - musste zuviel ändern - bitte testen!

ACHTUNG: die standard-pfade für die fonts und images habe ich gegenüber v0.9.5 geändert. ist wohl besser so - die bilder gehören bspw. nicht in den media-ordner. aber wen's stört: beide pfade sind jetzt im "Alles"-modus der modul-konfiguration frei wählbar!!! wink.gif )
amk
ACHTUNG es wurde gerade ein problem auf 1und1 servern festgestellt - wenn es zu einem internen serverfehler kommt muss im outputcode mal nach folgenden zeilen gesucht werden:

if( function_exists(imagetruecolortopalette) )
imagetruecolortopalette($img_final,false,128);

jene müssen dann auskommentiert werden

// if( function_exists(imagetruecolortopalette) )
// imagetruecolortopalette($img_final,false,128);

keine ahnung woran das liegt - die 1und1-500er sind ja immer so grandios aussagekräftig bzgl. php-fehlern!!! dry.gif
pawel
Kann du deine Klasse auch um das Ausgabeformat svg erweiteren? Ich meine weniger die Einbindung über das <text> Element, sondern eher als Pfad.
amk
ZITAT(pawel @ Tue. 19. December 2006, 13:35) *
Kann du deine Klasse auch um das Ausgabeformat svg erweiteren? Ich meine weniger die Einbindung über das <text> Element, sondern eher als Pfad.


ehrlich gesagt hab ich kaum ahnung von SVG ... hat prinzipiell nicht viel mit MrType zu tun. erzähl mal genauer, was du dir vorstellst ... mit "Ich meine weniger die Einbindung über das <text> Element, sondern eher als Pfad." kann ich nichts anfangen.
pawel
Na ja deine Klasse in MrType macht aus Trutypes Bilder.Nötig ist das ja nur, weil nicht jeder 2.5000 Standardfonts auf seinem Rechner hat biggrin.gif .
Blöd ist nur, das beim ersetzen des Textes durch Bilder, die Bilder nicht mitskalieren, wenn die Seite vergrößert wird. Da könnte ein Vektorgrafikformat eine Lösung sein.

Ich stehe beim svg auch erst am Anfang, aber einige Blogs munkelten das der IE 7.2 das Format nativ unterstützen soll (wie Opera, Safari und in einer Teilmenge auch der Fuchs). Das wäre dann der Durchbruch des Formats. Unabhängig davon läuft der Adobe Viewer unproblematisch mit dem IE.

Ich kann hier ein bisschen Lektüre bieten.
Ich stecke auch noch nicht tief drin, hier ein Textbeispiel..
Das klappt bei mir, wie es soll, nur wenn der Font installiert ist. Deshalb gibt es, wie in Layoutsoftware, die Möglichkeit mit einem Programm wie Inkscape oder Freehand Texte in Pfade umzuwandeln und damit unabhängig vom installierten Font zu machen.

Mein Ziel ist es also ein Bild zu haben, welches ohne Qualitätsverlusr skalierbar ist.
amk
ZITAT(pawel @ Tue. 19. December 2006, 21:27) *
Na ja deine Klasse in MrType macht aus Trutypes Bilder.Nötig ist das ja nur, weil nicht jeder 2.5000 Standardfonts auf seinem Rechner hat biggrin.gif .
Blöd ist nur, das beim ersetzen des Textes durch Bilder, die Bilder nicht mitskalieren, wenn die Seite vergrößert wird. Da könnte ein Vektorgrafikformat eine Lösung sein.


nunja ... das ist nix neues das bitmaps nur minderqualitativ skaliert werden können. auch nix neues ist, dass websites heute in der regel selten skaliert werden sollen/können/müssen. insofern ist das meist kein problem.

als alternative gibt's seit jahren flash ... svg - na klar - hat diesbezüglich auch weitere und ganz andere vorteile. ich glaube aber kaum das neue browser dem svg-format auf die sprünge helfen werden. es muss erstmal angewendet und vor allem notwendig sein ... und notwendigkeit ist heutzutage, bei üblichen screenauflösungen von 1280x1024 pixeln und in zeiten von DSL (wo auch hq-bitmaps kein problem sind), kaum gegeben. in einigen jahren, wenn du auf deinem 19zoll 10megapixel-display eh keine pixel mehr erkennst, und wo websites sogar skaliert werden müssen und sollen, wird die sache vielleicht schon wieder anders sein cool.gif

langweilen tue ich mich momentan nicht, sonst hät ich vielleicht lust tiefer in die SVG-materie einzusteigen, auch wenn's mir als vergebene liebesmüh erscheint. bin da ehr etwas pessimistisch bzgl. SVG - das format gibt's schon lang und irgendwie passiert nix ... trotzdem danke für die links!
STam
Zur Zeit kenne ich nur eine Lösung um mit PHP SVG's zu erstellen.
Dazu braucht man Batik > http://xmlgraphics.apache.org/batik und
Shell Erlaubnis für exec() sad.gif
... das grenzt den Nutzer Kreis erheblich ein denke ich.
Ansonsten ist die implementierung noch einfacher als die von Mr.Type

Gruß

Edit: ich habe hier noch eine MediaWiki-Extension die als Beispiel dienen könnte.
Code für die LocalSettings.php
QUELLTEXT
## SvGExtension
include("extensions/SVGExtension.php");
$wgSVGSettings->javaCommand  = "/usr/local/lib/jdk/bin/java";
$wgSVGSettings->batikCommand = "/usr/local/lib/batik/batik-rasterizer.jar";

Der Aufruf ist dann hier beschrieben.
Vieleicht bindet das ja ein Admin in das Doku-Wiki ein wink.gif
alexander
ZITAT(STam @ Wed. 20. December 2006, 09:44) *
Vieleicht bindet das ja ein Admin in das Doku-Wiki ein wink.gif


Das MediaWiki wird demnächst abgelöst ...
pawel
ZITAT
es muss erstmal angewendet und vor allem notwendig sein ..

Nun ja, darüber reden wir ja gerade...
Als Meyer, Shea und Co 2003 anfingen der Webwelt zu erzählen, das man tabellenfrei layouten kann, hielten das viele für zu früh oder überflüssig.

Hier noch ein bißchen Lektüre

@STam: Ja Batik ist natürlich toll, aber du brauchst dann halt deinen eigenen Server. Ich dahte mehr in die Richtung einer Klasse.
MaZderMind
Hi
Weiß jemand ob/wie man diue Fiunktionen der Freetype-Bibliothek direkt ansprechen kann? Damit könnte man die Outlines eines Zeichens eines TTF-Glyphen auslesen und daraus ein SVg zu machen ist ja echt kein Ding mehr wink.gif

Gruß, Peter
amk
wüsste nicht dass das geht ... wenn du so willst, könnte man auch Adobe Streamline mit php nachprogrammieren wink.gif
MaZderMind
Hier ist eine Klasse in VB geschrieben, die genau das nur mit einfachen Dateioperationen bewältigt. Wär ja cool wenn man das auf PHP übertragen könnte... ich schaus mir mal an smile.gif
[edit] Mist.-. hAb nicht genaugenug hingeguckt.. dord wird die GetGlyphOutlineA-Funktion der gdi32.dll benutzt welche die eigneltiche Arbeit erledigt.

Gruß, Peter
andi
habe mir das ganze kurz angeschaut und mir ist noch ein kleiner (tip)fehler aufgefallen.

im output ist ein semikolon zu viel:

QUELLTEXT
$css.=";background-image:url('".$mvars['20'].$newimage->imagename."');";


korrigiert:
QUELLTEXT
$css.=";background-image:url('".$mvars['20'].$newimage->imagename."')";


nur so am rande. ansonsten super modul. brauche ich für ein projekt (überlege mir jedoch ob auf «sfir» eine lösung wäre).


gruss andi
amk
wieso zuviel ... ich las mal, dass es eine unart ist, bei css-definitionen das letzte semikolon wegzulassen. natürlich geht es auch ohne, es ist aber keinesfalls ein fehler wenn es vorhanden ist ...
andi
ZITAT(amk @ Thu. 21. December 2006, 12:25) *
wieso zuviel ... ich las mal, dass es eine unart ist, bei css-definitionen das letzte semikolon wegzulassen. natürlich geht es auch ohne, es ist aber keinesfalls ein fehler wenn es vorhanden ist ...


ganz einfach, der output sieht folgendermassen aus:

QUELLTEXT
$css="display:block";
$css.=";height:".$newimage->res_height."px";
$css.=";width:".$newimage->res_width."px";
$css.=";background-image:url('".$mvars['20'].$newimage->imagename."');";
$css.=";background-repeat:no-repeat;";


das abschliessende semikolon befindet sich schon vor background-repeat. wenn du das so stehen lässt hast du auf einer website zwischen background-image und background-repeat ein semikolon zuviel (ein abschliessendes semikolon ist schon korrekt):

--> background-image:url(blabla);;background-repeat:no-repeat;
amk
ahhh alles klar ... du hast natürlich recht ... ich hab den php-code auch nicht permanent im kopf wink.gif
Olaf
ZITAT(andi @ Thu. 21. December 2006, 12:18) *
nur so am rande. ansonsten super modul. brauche ich für ein projekt (überlege mir jedoch ob auf «sfir» eine lösung wäre).

Noch mehr zum Rande, es erschien kürzlich eine neue Beta, http://novemberborn.net/sifr3/beta1

Uups, edit, du schriebst ja sfir, sorry wink.gif
feniweb
@andi
QUELLTEXT
(überlege mir jedoch ob auf «sfir» eine lösung wäre).

Ich denke du meintest "sIFR"

Hier einen Link für deutsch sprechende. tongue.gif
andi
ai, klaro...siehe hier rolleyes.gif
pawel
Nun ja, der Client braucht halt das Flash-Plugin und aktiviertes JS. Abgesehen davon, das man für eigene Schriften auch noch Flash braucht. Da bleib ich bei meiner bevorzugten Variante.

@MaZderMind: Trotzdem coole Idee
Und weil wir hier jetzt mitten im Replacementthread sind, habe ich noch einen..

PS: Mit einer anderen Grafik (durch Inkscape erzeugt) läuft das Beispiel auch unter dem Fuchs.
Uliwe
smile.gif Hallo.

Mein erster Test mit MrType will noch nicht so recht gelingen: Mit Yanone Kaffeesatz sieht das Ergebnis nicht aus wie erwartet (oben), sondern etwas lädiert (unten).



Nun liegt die Schrift nicht als ttf sondern als otf vor, und damit sie im Template überhaupt selektierbar ist, mußte ich die Datei in eine ttf umbenennen. Kann das überhaupt funktionieren?

Grüße,
Uli.
amk
ja also du kannst nicht einfach ne die schriftdatei mit ner anderen endung versehen und glauben das es dann problemlos funktioniert. ich kenne die interna des open type formats nicht - es wundert mich schon sehr das es überhaupt ansatzweise funktioniert hat - müssen also ähnlichkeiten im format OTF und TTF da sein - keine ahnung ... ohne eine entsprechende konvertierungssoftware welche aus OTF TTF macht wirst du wohl nicht weit kommen.
gunwalt
ZITAT(amk @ Tue. 13. February 2007, 15:25) *
... ohne eine entsprechende konvertierungssoftware welche aus OTF TTF macht wirst du wohl nicht weit kommen.

z.b hier

Ich kenne das Produkt nicht, hört sich intererssant an.
Uliwe
OK, vielen dank Euch beiden für die rasche Hilfe.

ZITAT
z.b hier

Gibt's zum Schriften konvertieren nicht vielleicht auch etwas preiswerteres...? rolleyes.gif
amk
ZITAT(Uliwe @ Tue. 13. February 2007, 19:51) *
OK, vielen dank Euch beiden für die rasche Hilfe.


Gibt's zum Schriften konvertieren nicht vielleicht auch etwas preiswerteres...? rolleyes.gif



versuchs mal mit FontCreator ... kann glaube otf's laden ... obs dann als ttf speichern kann weiss ich nicht so genau ... jedenfalls gibts das dingens auch als trail-version ...

http://www.high-logic.com/
paulinsche
Hier noch OpenSource FontForge
Hab's allerdings weder benutzt noch getestet, ein Versuch dürfte es allemal wert sein.
Uliwe
Danke für diese Tipps. Habe mir vom freundlichen Urheber der Schrift die ttf-Variante zuschicken lassen. Das Ergebnis damit sieht jetzt mit MrType (unten) so aus:



So richtig glücklich macht mich das noch nicht... sad.gif wink.gif . Hat noch jemand irgendwelche Hinweise, die weiterhelfen können?
Uliwe
GROSSES DANKESCHÖN an paulinsche, dank seiner Unterstützung sieht das Ergebnis jetzt prima aus (3. Zeile):



smile.gif Bis die Tage,
Uli.
andi
schön wäre auch zu wissen, was er gemacht hat. hilft vielleicht dem einen oder anderen mit selbigem problem.


gruss andi
amk
schaut aus wie gd-lib ohne und mit antialias-fähigkeit.
paulinsche
Ich habe das TTF mit Fontographer (Mac OS Classic-Programm) nur nochmals neu für PC generiert. Ich vermute, dass beim ursprünglichen Font - aus welchem Grund auch immer - die Pfade nicht verbunden waren.
fo.x
Hallo,

wie krieg ich es hin die Schrift um 90° zu drehen ?

rolleyes.gif
amk
also ich kann meinen monitor um 90grad drehen laugh.gif

also müsste und könnte man entsprechend programmieren ...
gunwalt
ZITAT(amk @ Wed. 2. May 2007, 18:36) *
also ich kann meinen monitor um 90grad drehen laugh.gif


für den Atari St gab es das mal, war aber ca. 1989, und hiess STAD, wenn ich mich nicht irre.
amk
also das nennt sich bei mir pivot-funktion wink.gif
fo.x
Hab dies Hier schonmal gefragt .....

Ich denke so einfach ( -90 ) wird es bei diesem Modul nicht

Könnte das für mich jemand coden ?
amk
du könntest dir vielleicht mit phpThumb selbst weiterhelfen. damit kann man auch bilder zur laufzeit rotieren. versuchs mal ...

http://phpthumb.sourceforge.net/
fo.x
ZITAT

da blick ich nicht durch wacko.gif
Olaf
Mal ganz dumm gestellt, was macht das Modul eigentlich aus dem hier:
QUELLTEXT
<p style="width:.9em">
g e d r e h t
</p>
fo.x
g
e
d
r
e
h
t

blink.gif
Olaf
Ja und? Als Bild?

Ich merk schon, zu dumm gestellt sad.gif

QUELLTEXT
<p style="width:.9em">     INS LAYOUT
<cms:....../>              ALSO DAS MODUL AN SICH IM LAYOUT
g e d r e h t              DAS IN DIE TEXTAREA DES MODULS
</p>                       LAYOUT
amk
also MrType ist's so ziemlich schnurz-piep was da im style-attribute steht. wink.gif
der generiert das bild laut den abmaßen in der konfig - kann aber word-wrap und zeilenumbrüche.

insofern kann in die MrType-textarea einfach


M
E
N
Ü
P
U
N
K
T

eingeben werden und es sollte was vertikales bei rauskommen.

gewissermassen sieht das aber nur bei monospaced fonts (schrifttypen gleicher breite) nett aus.
Olaf
ZITAT(amk @ Fri. 4. May 2007, 01:38) *
also MrType ist's so ziemlich schnurz-piep was da im style-attribute steht. wink.gif

Ah ja, gut. Hab das noch nicht benutzt.

@ fo.x
Ist das dann um 90° gedreht? laugh.gif
fo.x
So in etwa sollte dies aussehen



rolleyes.gif
fo.x
Hallo,

ich nerv hier nochmals mit meiner Anfrage.
Könnte man nicht nachfolgenden Code irgendwie in Mr.Type einfügen bzw. anpassen.
natürlich gegen Bezahlung .

QUELLTEXT
<?php
// File and rotation
$filename = 'test.jpg';
$degrees = 90;

// Content type
header('Content-type: image/jpeg');

// Load
$source = imagecreatefromjpeg($filename);

// Rotate
$rotate = imagerotate($source, $degrees, 0);

// Output
imagejpeg($rotate);
?>

rolleyes.gif
Olaf
Zeig doch mal was du vorhast. Es muss doch auch ne Lösung ohne MrType geben, muss das unbedingt dynamisch sein? Vielleicht lässt sich was finden...
saschapi
ZITAT(Olaf @ Wed. 9. May 2007, 13:55) *
Zeig doch mal was du vorhast. Es muss doch auch ne Lösung ohne MrType geben, muss das unbedingt dynamisch sein? Vielleicht lässt sich was finden...

Vermutlich dies. smile.gif
Olaf
Nö, es soll ja das fertige Bild gedreht werden, das geht so nicht. Mir gings ja eher in Richtung CSS smile.gif
Frag ja auch warum es unbedingt dynamisch sein soll, oder versteh ich deinen Post falsch!?
saschapi
Ne verstehst du vermutlich nicht.

Ich hatte ihn weiter oben so verstanden, dass es halt durch redakteure geändert werden können soll.

Sein Ansatz war glaub ich ganz gut, einfach nach erstellen des bildes durch Mr.Type am ende zu drehen. sollte mit der GD ja eigentlich gehen. Vielleicht kann man das sogar in der ModulKonfig konfigurierbar machen?!?

Aber dazu kenn ich mich zu schlecht mit Image handling aus.
fo.x
Hallo Olaf + saschapi,

ja das ganze "sollte" Dynamisch geschehen .
Es ist ein reines Grafiklayout zeugs...

Auf der Seite müsste halt der Ordnername im "Hintergrund" angezeigt werden . Und dieses Bild müsste um 90° gedreht sein.

Mit obigem Code funktioniert es tadelos .. ich müsste nur das generierte Bild "abfangen" können sad.gif
Dieses ist eine vereinfachte Darstellung unseres Foreninhaltes. Um die detaillierte Vollansicht mit Formatierung und Bildern zu betrachten, bitte hier klicken.
Invision Power Board © 2001-2024 Invision Power Services, Inc.