Posts by bertram

    "frei von Touris"

    Wobei die Insta- und FB-Pest noch stärker zu sein scheint als Covid19. Da wurde ich doch am Fuß der Burg glatt von einem angereisten Pärchen nach dem Weg zur Marienbrücke gefragt ... :o_o:

    Es ist März. Das Hochdruckwetter verführte zu einem kurzen Ausflug:


    St. Coloman bei Schwangau mit Gehrenspitze



    Wegen der Pandemie ist die Gegend völlig frei von Touris.

    Version 5.3.2.0 ist online.


    Druckvorschau:

    Der Randabstand wird nicht mehr automatisch auf Null gesetzt, wenn man zu einem Randlosdrucker wechselt. Zusätzlich haben wir die Ausrichtung der Unterschrift in der Vorschau verbessert, ebenso die Randverletzungsanzeige.


    Bild scannen:

    Nach einem Scan erhält das Programm wieder den Fokus, sodass es ohne Mausklick sofort auf Tastatureingaben reagiert.


    Bild verformen:

    Bei stärkerer Verzerrung des elastischen Netzes gab es sehr häufig Artefakte in Form schwarzer Flächen. Diese Gefahr konnten wir deutlich verringern.


    Objekt ausrichten:

    Bisher wurden nur zwei Referenzpunkte benutzt, die zugehörige Bildtransformation ist eine Drehstreckung. Nun kann man auch mit vier Referenzpunkten arbeiten. Dieses Verfahren kann helfen, wenn man zwei Bildinhalte zur Deckung bringen will, die nicht exakt die gleiche Perspektive aufweisen, weil sie nicht exakt vom gleichen Standpunkt aufgenommen wurden. Dabei wird der Bildinhalt zusätzlich so verformt, dass die vier Referenzpunkte aufeinander zu liegen kommen.


    Diese Anregung stammt von HoSt, der auch das folgende Beispiel zur Verfügung stellt (Holger, vielen Dank!). Es gehört zu seinem Kalenderprojekt "Fenster in die Vergangenheit", siehe:

    *Wünsch dir ein User-Foto* - 2018

    http://fenster-in-die-vergangenheit.de/

     


    Die Aufgabe: Das historische Bild (rechts) soll so transformiert werden, dass ein Ausschnitt davon möglichst genau mit der aktuellen Aufnahme (links) zur Deckung gebracht wird. Intern benutzt das Programm dazu neben einer Drehstreckung auch eine Spline-Verformung mit elastischem Netz.

     


    Das dritte Bild zeigt das Ergebnis dieser Transformation, das vierte Bild wurde letztendlich mit der "Bilder mischen"-Funktion aus Bild 1 und Bild 3 montiert. Die vier roten Markierungen zeigen die für das Objekt-Ausrichten benutzten Referenzpunkte.

    Egal welche Art von Drucker unter Windows als Standdarddrucker definiert ist, ist in Ji die Druckvorschau immer mit einem weißen Rand versehen ...

    Und warum wird der Randabstand nicht wieder auf die 5 mm zurückgesetzt ...

    Einfache Antwort:

    Weil wir das vor Jahren so programmiert haben. Hätten wir geahnt, dass wir 8 Jahre später über so eine Lapalie 2 Tage diskutieren werden, dann hätten wir damals schon zwei Tage über diesen Stolperstein nachgedacht. Dann gäbe es aber heute noch keine Druckvorschau. :mrgreen:

    Hallo Walter,

    Das Problem ist offensichtlich, dass der Wert für "DefPrintBorder" bei Auswahl des Canon-Druckers nicht neu eingelesen wird.

    ...

    Der Wert "50" für "DefPrintBorder" wird offensichtlich immer beim Neustart des Programms und Erstanlage der Ini-Datei eingefügt, egal ob unter Windows PDF oder Canon als Standard-Drucker eingestellt ist. Ist PDF der Standarddrucker, so hat die Vorschau eine Druckbereichsbegrenzung - falsch

    Der Randabstand ist in Hauptsache ein Gestaltungsmittel für den Benutzer vergleichbar einem Passepartout und nicht eine Druckereigenschaft!

    Er wird willkürlich mit dem Wert 5mm initialisiert und vom Benutzer eingestellt in dem Edit "Abstand zum Papierrand". Er wird nicht von einem Drucker eingelesen. Ein Drucker kann auch nicht wissen, welchen Abstand vom Rand ich einhalten möchte. Davon gibt es (wie oben bemerkt) eine Ausnahme: wenn man auf einen Drucker wechselt, der Randlosdruck meldet, dann setzen wir den Randabstand auf 0. Und wenn du diesen Zustand als Vorgabe speicherst, dann steht dort DefPrintBorder= 0, Das kann man bei jedem Drucker wieder ändern, auch beim pdf-Drucker, und auch als Vorgabewert ablegen.

    Man kann auch für jeden Drucker ein oder mehrere Layouts anlegen. Da ist der vom Benutzer eingestellte Randabstand jeweils mit gespeichert. Vielleicht hilft es dir, wenn du den Druckerwechsel mit dem Aufruf eines Layouts vornimmst, anstatt ihn im Kombinationsfeld "Drucker" auszuwählen.

    Mir ist aber aufgefallen, dass bei einem Wechsel von einem Hardware- zu einem PDF-Printer der Abstand zum Papierrand auf Null gesetzt wird.

    pixelfan:

    Ich denke auch, dass dies das einzige ist, was man vielleicht als unlogisch ansehen kann. Dabei ist das als Hilfe gedacht, für die User, die sich mit den Fein-/Eigenheiten von Druckern nicht so auskennen. Ein Durchschnittsbenutzer merkt sonst eventuell gar nicht, dass er hier bis zum Rand drucken kann.


    Beachte auch den Unterschied:

    Der gestrichelte Rand zeigt den vom Benutzer eingestellten Abstand zum Papierrand an.

    Die roten Ränder sind durch die Eigenschaften des Druckers vorgegeben. Diese erscheinen nur, wenn es Unstimmigkeiten gibt zwischen dem, was der Benutzer einstellt, und dem, was der Drucker kann.

    Transparenzfarbe haben wir schon probiert. Im Allgemeinen ist das für unseren Außenrahmen unbrauchbar. In Spezialfällen geht es einigermaßen: Dazu muss der Rahmen wirklich einfarbig sein und darf keinen Schatten oder Schriftzug beinhalten. Bei runden Rahmen sorgt das Antialiasing für sichtbare Artefakte und, wenn du Pech hast, fehlen Teile im Inneren des Bilds.



    Das ist ein Beispiel eines 3D-Rahmens mit runder Ecke und gänzlich ohne Schatten. Während die waagrechte und senkrechte Kante sauber sind, ergibt sich In der Rundung ein Farbsaum.

    So etwas stellt uns nicht zufrieden.

    pixelfan:

    Danke für die Analyse. Da muss ich mich erst damit befassen. Allerdings:

    1. Ist ein Papierdrucker ausgewählt ... Die richtige Darstellung erhält man leider nur durch Neustart des Programms.

    Ein "Zurück zur Vorgabe" genügt. Das liefert auch den vorher eingestellten Drucker. Oder du legst dir verschiedene Drucker-Layouts fest und wählst das entsprechende.

    Deshalb ja auch meine Überlegung, ob es nicht möglich ist, einen transparenten Farbverlauf zu bestimmen

    Ich bin mir nicht sicher, ob du dir das richtig vorstellst. So ein Schatten hat selber keine Farbe sondern nimmt die Farbe des Untergrunds an. Schatten auf einem grünen Rahmen ist grünlich. Jetzt soll der Rahmen aber transparent werden, dann soll der Schatten die Färbung des noch unbekannten, künftigen Hintergrunds widerspiegeln und nicht grünlich sein.

    Möglich ist vieles. Wenn man es machen will.

    Ich dachte halt, dass Transparenz eigentlich eine Standard-Eigenschaft von png-Dateien ist.

    Das stimmt natürlich schon. Wobei die Transparenz mit "Transparenzfarbe" eher etwas für Grafiken, Cliparts, Word-Formen ... ist als für Bilder. Deine Überlegung, dass ein einfarbiger Bilderrahmen sich dafür auch eignen sollte, ist vollkommen richtig.


    Das Problem scheint mir eher im Detail zu liegen:

    a) Wenn wir beim Speichern die png-Datei mit Transparenzfarbe versehen wollen, stellt sich die Frage, wo definiere ich diese? Erst, nachdem der Speicherndialog mit dem Typ "*.png" mit "OK" verlassen wird in einem weiteren Dialog? Schon vorher auf der Rahmenregisterkarte, wo noch gar nicht feststeht, ob man als *.png speichern wird? Eine Option, wo die Farbe des äußeren Rahmen generell als Transparenzfarbe angehakt werden kann und die nur von Bedeutung ist, wenn man *.png speichert?

    b) Wenn wir die Transparenzfarbe erst beim Mischen der Bilder festlegen, umgehen wir die vorigen Fragen. Was bleibt ist immer noch das Farbproblem, das durch das Skalieren entsteht.

    c) Einen Alpha-Kanal zu beschreiben für den äußeren Rahmen ist ziemlicher Aufwand und letztlich unbefriedigend wegen des Schattenverlaufs und des Antialiasing, das bei den runden Ecken eingesetzt wird.


    Da müssen wir noch drüber schlafen ...

    Das hast du aber vermutlich durch Maskierung in einem anderen Programm gemacht und nicht mit einer Transparenzfarbe?

    Der Umgang mit einer Transparenzfarbe hat folgendes Problem: Wenn man ein Bild größer oder kleiner skaliert (und das macht man in der Regel, wenn man es in ein anderes einfügt), dann werden die Farbwerte durch Interpolation ermittelt. Das bedeutet, dass Farbwerte nicht exakt beibehalten werden. Bei einem zunächst sauberen weißen Bildrand bekommst du beim Skalieren kleine Farbsäume und das stört natürlich, wenn man (255,255,255)-Pixel transparent machen möchte. Der saubere Rand ist dann ausgefranst.

    Ich arbeite gerade an einem Büchlein über Wanderungen im Odenwald. Da lag die Verwendung nahe.

    :daumenhoch:


    Weil die Transparenz aber auch über die Farbe bestimmt wird, werden die weißen Schriftfelder auch transparent geschaltet.

    Vielleicht ist es möglich für den äußeren Rahmen eine andere Farbe zu verwenden als für den Schrifthintergrund.


    Wenn es größere Probleme bereitet ...

    Es ist halt schwierig ohne einen Alpha-Kanal zu erzeugen dem fertigen Bild mitzuteilen, was die Transparenzfarbe ist und dass bitte nur der Rahmen transparent werden soll.


    Am einfachsten könnte ich mir vorstellen, beim Mischen der Bilder eine Pipette hinzuzufügen, mit der man eine Transparenzfarbe festlegen kann.

    Wäre es sehr aufwändig, eine Funktion einzubauen, mit der man in *.png-Dateien eine Farbe transparent schalten könnte, z. B. weiß?

    Danke für die Anregung!


    Verstehe ich dich richtig:

    Du möchtest beim Speichern eines Bilds als png-Grafik eine Farbe als transparent definieren können. Wenn man in einem anderen Bild diese Grafik als Mischbild hinzufügt, soll die Transparenz wirken.

    Denkbar wäre auch der andere Fall:

    Du möchtest beim Mischen eine Farbe des Mischbilds als transparent definieren.


    Wie aufwändig das ist, kann ich noch nicht sagen. Da muss ich mich erst wieder in den Sachverhalt vertiefen.


    Ein Problem jedenfalls wird der Schatten sein. In deinem Beispiel wurde der Schatten auf weißem Hintergrund erzeugt und ist deswegen grau. Über andersfarbigem oder verschiedenfarbigem oder unterschiedlich hellem Hintergrund kann das unstimmig sein.