Wie bekomme ich ein Image Tranparent ?

Alle Fragen zur Programmierung, die nicht in die speziellen Themen passen
Antworten
gambasso
Foriker
Beiträge: 1021
Registriert: Sa 17. Mär 2012, 09:55
Kontaktdaten:

Wie bekomme ich ein Image Tranparent ?

Beitrag von gambasso » So 1. Sep 2019, 15:21

moin,

Ich möchte gerne auf ein Image etwas hinzufügen, eine Zeichnung oder ein anderes Bild. Das sollte aber transparent sein.
Wenn ich ein Bild über 'gimp' erzeuge, kann ich 'gimp' sagen, daß der Hintergrund tranparent sein soll. Das klappt auch. Dieses Bild kann
ich dann auf meinem Image legen und sehe dann den Hinter von meinem Image.

Füge ich über Gambas ein Text zum Image bei, ist der Text-Hintergrund auch transparent.

Ich habe auf einer ScrollArea ein Hauptbild und eine 2. ScrollArea mit meinem 2.Image. Wie kriege ich das 2.Image transparent, so das das Hauptbild an den Stellen wo nichts ist, zu sehen ist. Beispiel ein Kreis, Raute ...
Gruss

Benutzeravatar
cogier
Foriker
Beiträge: 38
Registriert: Do 19. Jul 2018, 16:18
Wohnort: Guernsey, Channel Islands
Kontaktdaten:

Re: Wie bekomme ich ein Image Tranparent ?

Beitrag von cogier » So 1. Sep 2019, 16:38

Schau, ob dir das hilft.

Bild
Test.tar.gz
(78.47 KiB) 7-mal heruntergeladen

gambasso
Foriker
Beiträge: 1021
Registriert: Sa 17. Mär 2012, 09:55
Kontaktdaten:

Re: Wie bekomme ich ein Image Tranparent ?

Beitrag von gambasso » So 1. Sep 2019, 16:50

das sieht nicht schlecht aus. Wie hast Du den Kreis erstellt? Den Hintergrund?
Gruss

vuott
Foriker
Beiträge: 90
Registriert: Fr 16. Jan 2015, 01:27
Kontaktdaten:

Re: Wie bekomme ich ein Image Tranparent ?

Beitrag von vuott » So 1. Sep 2019, 23:58

...eine kleine variation von cogier code:
gambas code
Public Sub ScrollArea1_Draw()

  Dim iImage0 As Image = Image.Load(Application.Path &/ "pict1.jpg")
   
  With Paint
    .Begin(iImage0)
    .Brush = .Color(Color.Red)
    .LineWidth = 8.0
    .Ellipse(iImage0.W / 12, iImage0.H / 12, 350, 350)
    .Stroke
    .End
  End With
  With Paint
    .DrawImage(iImage0, 0, 0)
    .End
  End With
  
End

gambasso
Foriker
Beiträge: 1021
Registriert: Sa 17. Mär 2012, 09:55
Kontaktdaten:

Re: Wie bekomme ich ein Image Tranparent ?

Beitrag von gambasso » Mo 2. Sep 2019, 12:46

@ vuott:

moin,

das ist keine Kunst auf ein Image zu zeichnen. Das kann ich mit meinem Programm auch.

Ich möchte gerne 2 Image über einanderlegen. Dabei muß das obere Image Transparent sein. Hierauf möchte ich zeichnen oder andere Bilder laden, wieder löschen und wenn es ok ist, auf das untere Image übertragen.
Dazu muß das obere Image Transparent sein, sonst sehe ich nicht wo ich zeichne oder ein Bild plaziere.
Dabei kann ich, wenn es mir nicht gefällt, das obere Image löschen und erhalte dabei das untere Image ohne Beeinflussung.
Deshalb, wie bekomme ich ein Transparentes Image erstellt, wo ich dann nur meine Aktivitäten sehe?
Gruss

vuott
Foriker
Beiträge: 90
Registriert: Fr 16. Jan 2015, 01:27
Kontaktdaten:

Re: Wie bekomme ich ein Image Tranparent ?

Beitrag von vuott » Mo 2. Sep 2019, 14:53

Hello.

Ja, ich erinnere mich, dass du gesagt hast, du hättest zwei ScrollArea.
gambas code
Private im1 As Image
Private im2 As Image


Public Sub Form_Open()

  im1 = Image.Load("/..../..../file_image.xxx")  

'  Erstellt ein "transparent image":                      ↘
  im2 = New Image(ScrollArea2.W, ScrollArea2.H, Color.Transparent, Image.Standard)

End



Public Sub ScrollArea1_Draw()

  With Paint
    .DrawImage(im1, 0, 0, im1.W, im1.H)
    .End
  End With

End

Public Sub ScrollArea2_Draw()

' Lädt das "transparent image" in die ScrollArea2:
  With Paint
    .DrawImage(im2, 0, 0, ScrollArea2.W, ScrollArea2.H)
    .End
  End With

End

gambasso
Foriker
Beiträge: 1021
Registriert: Sa 17. Mär 2012, 09:55
Kontaktdaten:

Re: Wie bekomme ich ein Image Tranparent ?

Beitrag von gambasso » Di 3. Sep 2019, 13:07

moin,

@vuott: es klappt teilweise. Zeichne ich im 2.Image auf der 2.ScrollArea was und lege es auf der 1.ScrollArea mit dessen Image, dan funktioniert es.

Ich habe aber noch eine 3.ScrollArea mit 3.Image auf der 1.ScrollArea. In dieser kann ich unabhängig von dem 1.Image was hineinbringen.
Dieses kann ich dann auf der 1.ScrollArea plazieren und übernehmen.
Den Hintergrund von dem 1.Image-Position kann ich auch im 3.Image übernehmen, aber nur, wenn ich es programmiere.
D.h., ich muß die Geografie des 3.Image auf dem 1.Image bestimmen und danach aus dem 1.Image auslesen und zum 3.Image übertragen.
Das ist natürlich umständlich und braucht seine Zeit.

Dieses 3.Image, bzw. 3.ScrollArea bekomme ich nicht transparent. Warum weiß ich nicht.
Lade ich das transparente Bild von 'gimp', erscheint dies nicht durchsichtig, es hat einen grauen Hintergrund (Programmfenster).
Übernehme ich aber das Bild von 'gimp' auf dem 1.Image, dann ist es aber transparent, d.h. nur das Gezeichnete ist sichtbar.

Habe versucht diese 3.ScrollArea transparent zu machen, aber ist mir bisher nicht gelungen, bzw habe noch nichts bemerkt.

Jemand eine Idee?
Gruss

Benutzeravatar
cogier
Foriker
Beiträge: 38
Registriert: Do 19. Jul 2018, 16:18
Wohnort: Guernsey, Channel Islands
Kontaktdaten:

Re: Wie bekomme ich ein Image Tranparent ?

Beitrag von cogier » Di 3. Sep 2019, 14:53

Ändern Sie den Code in meinem letzten Programm in den folgenden Code. Auf diese Weise können Sie das Bild mit der Maus verschieben.

Code: Alles auswählen

X As Integer 
Y As Integer

Public Sub ScrollArea1_Draw()
Dim iImage0 As Image = Image.Load(Application.Path &/ "pict1.jpg")
Dim iImage1 As Image = Image.Load(Application.Path &/ "pict2.png")

Draw.Image(iImage0, 0, 0)
Draw.Image(iImage1, X, Y)

End

Public Sub ScrollArea1_MouseDrag()

X = Mouse.X
Y = Mouse.Y
Me.Refresh

End
Ich benutzte'LibreOffice Draw', um den Kreis zu erstellen.
Kreis.odg
(9.12 KiB) 4-mal heruntergeladen
Dann habe ich mit'Shutter' ein Foto davon gemacht.
Dann habe ich es auf Lunapic hochgeladen.
Ich benutzte'Edit>Transparent Background', um den Hintergrund transparent zu machen.
Ich habe die Datei gespeichert.

gambasso
Foriker
Beiträge: 1021
Registriert: Sa 17. Mär 2012, 09:55
Kontaktdaten:

Re: Wie bekomme ich ein Image Tranparent ?

Beitrag von gambasso » Di 3. Sep 2019, 16:26

@ cogier:

schade, schön wäre es, das tranparente Image mit Gambas zu erstellen. Habe es mit einer ScrollArea geschafft, mit der 2. allerdings nicht. Ich bin aber noch dran. Ich ändere gerade das Aussehen der HauptForm, da das ganze zu umfangreich geworden ist
Gruss

vuott
Foriker
Beiträge: 90
Registriert: Fr 16. Jan 2015, 01:27
Kontaktdaten:

Re: Wie bekomme ich ein Image Tranparent ?

Beitrag von vuott » Mi 4. Sep 2019, 10:38

gambasso hat geschrieben:
Di 3. Sep 2019, 13:07
Dieses 3.Image, bzw. 3.ScrollArea bekomme ich nicht transparent. Warum weiß ich nicht.
Können Sie ein kurzes Programm anhängen, das dieses Problem reproduziert?

besenmuckel
Foriker
Beiträge: 117
Registriert: Di 4. Nov 2014, 21:11
Kontaktdaten:

Re: Wie bekomme ich ein Image Tranparent ?

Beitrag von besenmuckel » Mi 4. Sep 2019, 11:31

Wie man das mit ScrollArea macht, weiss ich nicht. Du könntest es aber mit einen DrawingArea machen. Hab mal kurz was zusammen geklick an Hand dieses Beitrag. Habe da nur das passende herraus kopiert.
viewtopic.php?f=47&t=4902&p=11581&hilit ... rea#p11581
Ok ist etwas overkill. Am einfachsten wäre es ein DrawingAreal mit transparenten Hintergrund wo du drauf malen kannst, evtl noch Bilder einbinden und den Ihnhalt dann als .png abspeicherst.
Können Sie ein kurzes Programm anhängen, das dieses Problem reproduziert?
Ja wäre hilfreich, damit man weiss was du genau machen möchtest.
picture_transparent-0.0.1.tar.gz
(12.06 KiB) 4-mal heruntergeladen

gambasso
Foriker
Beiträge: 1021
Registriert: Sa 17. Mär 2012, 09:55
Kontaktdaten:

Re: Wie bekomme ich ein Image Tranparent ?

Beitrag von gambasso » Mi 4. Sep 2019, 13:02

moin,

was ich machen möchte, habe ich schon mehrmals erwähnt.
Ich nehme lieber eine ScrollArea anstelle einer DrawingArea, denn letztere soll veraltet sein.
Programm ist riesengroß geworden, da greift eins ins andere. Das hier zum durchschauen uploaden wäre wahrscheinlich nicht hilfreich.

Das wichtigste ist für mich, wie erstelle ich mit Gambas ein transparentes Image auf einer frei beweglichen ScrollArea, welches sich auf einer anderen ScrollArea (auch mit Image) befindet.

Beispiel: habe eine tödlich kleine Gebrauchsanleitung mit Zeichnung. Habe diese eingescannt, wurde fast DIN A4 groß. Dadurch natürlich einiges unscharf. Dieses wollte ich ersetzen. Darum wollte ich neue Zeichnungsteile austauschen. Dazu brauche ich ein transparentes Image, wo nur die neue Zeichnung sichtbar ist und kein Hintergrund. Das war mit Gambas nix.
Dazu braucht man z.B. ein transparentes Image.
Gruss

gambasso
Foriker
Beiträge: 1021
Registriert: Sa 17. Mär 2012, 09:55
Kontaktdaten:

Re: Wie bekomme ich ein Image Tranparent ?

Beitrag von gambasso » Do 19. Sep 2019, 18:20

moin,

habe ein transparentes Image hinbekommen. Aber jetzt das Nächste.
Ich möchte ein Radiergummi erstellen, mit welchem ich auf einem Bild was wegradieren kann.
Weg geht nicht, ich muß dem Radiergummi eine Farbe geben, mache ich es transparent, nimmt das Bild dieses nicht an.
Der Hintergrund wird nicht gelöscht. Sobald ich eine Farbe zufüge, wird der Hintergrund an der Position der Farbe entsprechend gefärbt.

Warum nimmt das Bild dann das Radiergummi nicht an?
Gruss

Antworten

Wer ist online?

Mitglieder in diesem Forum: Google [Bot] und 1 Gast