grafiken zusammensetzen und verschieben
- Tsuki-Namida
- Beiträge: 633
- Registriert: 17.11.2005 13:27
- Kontaktdaten:
grafiken zusammensetzen und verschieben
Hallo,
ich bin gerade am tüftelen wie man mehere grafiken zusammensetzen kann. zum Beispiel: 3 bilder (linke seite, rechte seite und Mitte) wie kann ich das so machen das wenn ich eine zahl eingebe wie die 6 das sich die bilder entsprechen zusammenfügen zu einem also 6 ist gegeben minus 2 wegen links und rechts und die restlichen 4 soll die mitte sein und die entsprechend duplizieren das dargestelle zusammengesetzte bild soll dann gespeichert werden zu einem.
dieses bild möchte ich aber auch in einem rahmen mit der Maus verschieben können und da habe ich noch nicht mal einen leichten hauch einer idee wie ich das machen könnte.
das alles soll mit PB 3.94 gemacht werden (Ein altes Projekt soll überarbeitet werden)
Danke schonmal für das lesen.
ich bin gerade am tüftelen wie man mehere grafiken zusammensetzen kann. zum Beispiel: 3 bilder (linke seite, rechte seite und Mitte) wie kann ich das so machen das wenn ich eine zahl eingebe wie die 6 das sich die bilder entsprechen zusammenfügen zu einem also 6 ist gegeben minus 2 wegen links und rechts und die restlichen 4 soll die mitte sein und die entsprechend duplizieren das dargestelle zusammengesetzte bild soll dann gespeichert werden zu einem.
dieses bild möchte ich aber auch in einem rahmen mit der Maus verschieben können und da habe ich noch nicht mal einen leichten hauch einer idee wie ich das machen könnte.
das alles soll mit PB 3.94 gemacht werden (Ein altes Projekt soll überarbeitet werden)
Danke schonmal für das lesen.

-
- Beiträge: 17389
- Registriert: 10.11.2004 03:22
> wenn ich eine zahl eingebe wie die 6 das sich die bilder entsprechen zusammenfügen zu einem also 6 ist gegeben minus 2 wegen links und rechts und die restlichen 4 soll die mitte sein und die entsprechend duplizieren das dargestelle zusammengesetzte bild soll dann gespeichert werden zu einem.
äh....
...Ägypten?
...sorry, ich versteh nicht im mindesten, worauf du hinaus willst.
äh....


...sorry, ich versteh nicht im mindesten, worauf du hinaus willst.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Der Weise weiß, dass er ein Narr ist.
- Tsuki-Namida
- Beiträge: 633
- Registriert: 17.11.2005 13:27
- Kontaktdaten:
okay ich habe mal ein beispiel vorberreitet.
ich habe einen button genommen und den in 3 teile geteielt (linke seite, rechte seite und mitte)
-
- 
der benutzer des programm kann in einem stringgadget eine ziffer eingeben zum beispiel die ziffer "6" die darstellung der bilder soll sich dann so verändern (ohne freizeichen):

diese dann auch beschriften und mit der maus verschieben in einem vorgegebenen rahmen.
Ich hoffe das ich mich diesmal versändlicher ausgedrückt habe -.-
ich habe einen button genommen und den in 3 teile geteielt (linke seite, rechte seite und mitte)
der benutzer des programm kann in einem stringgadget eine ziffer eingeben zum beispiel die ziffer "6" die darstellung der bilder soll sich dann so verändern (ohne freizeichen):
diese dann auch beschriften und mit der maus verschieben in einem vorgegebenen rahmen.
Ich hoffe das ich mich diesmal versändlicher ausgedrückt habe -.-

-
- Beiträge: 17389
- Registriert: 10.11.2004 03:22
- Tsuki-Namida
- Beiträge: 633
- Registriert: 17.11.2005 13:27
- Kontaktdaten:
ja es waren erst 3 bilder und es sind auch immer noch 3 bilder jedenfals 3 verschiedene...
6 wird eingegeben
die 2 randbilder werden abgezogen
benutzer ziffer ist dann 4
bilder verbleiben 1 (mitte.jpg)
das bild wird 4 mal neben einander angezeigt
diese darstellung muss dann aber in ein einziges bild gespeichert werden
6 wird eingegeben
die 2 randbilder werden abgezogen
benutzer ziffer ist dann 4
bilder verbleiben 1 (mitte.jpg)
das bild wird 4 mal neben einander angezeigt
diese darstellung muss dann aber in ein einziges bild gespeichert werden

vielleicht meinst du sowas in der art?:
Code: Alles auswählen
#links=0
#mitte=1
#rechts=2
#result=3
LoadImage(#links, "C:\test\5x40_l.bmp")
LoadImage(#mitte, "C:\test\5x40_m.bmp")
LoadImage(#rechts,"C:\test\5x40_r.bmp")
w=ImageWidth(#links)
h=ImageHeight(#links)
While width<3 Or width>200
width=Val(InputRequester("breite eingeben", "bitte geben sie die breite des buttons ein", "3"))
If Not width
End
EndIf
Wend
If Not CreateImage(#result, w*width, h)
MessageRequester("fehler", "kann image nicht erstellen.")
End
EndIf
StartDrawing( ImageOutput(#result) )
DrawImage( ImageID(#links), 0,0)
For i=1 To width-2
DrawImage(ImageID(#mitte), i*w,0)
Next
DrawImage( ImageID(#rechts), (width-1)*w,0)
StopDrawing()
file.s=SaveFileRequester("save result...", "", "*.bmp|*.bmp",0)
If LCase(GetExtensionPart(file))<>"bmp"
file+".bmp"
EndIf
If file
If SaveImage(#result, file)
RunProgram(file)
EndIf
EndIf
- Rubiko
- Beiträge: 943
- Registriert: 25.02.2005 19:43
- Computerausstattung: Intel i7 2600k
8GB Ram
GeForce GTX 560 Ti - Wohnort: Schwabach
Ich glaube jetzt verstehe ich es:
Er hat einfach 3 Bilder (links eins, mitte eins, rechts eins)
jetzt gibt er 6 ein und die Bilder werden erstmal dupliziert (ohne Rand) d.h.
Links - Mitte - Mitte - Mitte - Mitte - Rechts
Und ich glaube so wie oben (^) will er es dann ein ein Bild Speichern, also wenn man 6 eingibt soll aus:


werden
(wobei jeder Buchstabe für ein Bild steht und das A und C für den Rand)
EDIT: Rechtschreibfehler beseitigt
Er hat einfach 3 Bilder (links eins, mitte eins, rechts eins)
jetzt gibt er 6 ein und die Bilder werden erstmal dupliziert (ohne Rand) d.h.
Links - Mitte - Mitte - Mitte - Mitte - Rechts
Und ich glaube so wie oben (^) will er es dann ein ein Bild Speichern, also wenn man 6 eingibt soll aus:


werden
(wobei jeder Buchstabe für ein Bild steht und das A und C für den Rand)
EDIT: Rechtschreibfehler beseitigt
Zuletzt geändert von Rubiko am 27.11.2006 13:27, insgesamt 2-mal geändert.
Ich wollte die Welt verändern, doch Gott gab mir nicht den Quelltext.
- Tsuki-Namida
- Beiträge: 633
- Registriert: 17.11.2005 13:27
- Kontaktdaten:
Ich kann es leider nicht an diesem PC testen da ich nicht zu hause bin und hier kein PB drauf ist.... aber ich werde es heute wenn ich zu hause bin testen... und hoffe mal das das wirklich so in der art ist wie ich mir das vorstelle.... aber der quelltext sieht schon mal gut aus
danke
[Edit]
@Rubiko
ja genau so meinte ich das...
und dann möchte ich es auch das fertige bild verschieben können innerhalb eines rahmens

[Edit]
@Rubiko
ja genau so meinte ich das...
und dann möchte ich es auch das fertige bild verschieben können innerhalb eines rahmens

- HeX0R
- Beiträge: 3042
- Registriert: 10.09.2004 09:59
- Computerausstattung: AMD Ryzen 7 5800X
96Gig Ram
NVIDIA GEFORCE RTX 3060TI/8Gig
Win11 64Bit
G19 Tastatur
2x 24" + 1x27" Monitore
Glorious O Wireless Maus
PB 3.x-PB 6.x
Oculus Quest 2 + 3 - Kontaktdaten:
Naja, wenn ich mir schon die Mühe gemacht hab, dann poste ich es auch 

Code: Alles auswählen
CatchImage(1, ?Links)
CatchImage(2, ?Mitte)
CatchImage(3, ?Rechts)
If OpenWindow(0, 0, 0, 322, 205, "Whatever", #PB_Window_SystemMenu | #PB_Window_ScreenCentered) And CreateGadgetList(WindowID(0))
StringGadget(0, 8, 10, 306, 20, "")
ImageGadget(1, 8, 40, 280, 21, 0)
Repeat
Select WaitWindowEvent()
Case #PB_Event_CloseWindow
Break
Case #PB_Event_Gadget
Select EventGadget()
Case 0
If EventType() = #PB_EventType_Change
a = Val(GetGadgetText(0))
If a > 0
If CreateImage(0, ImageWidth(1) + ImageWidth(3) + a * ImageWidth(2), 21)
StartDrawing(ImageOutput(0))
DrawImage(ImageID(1), 0, 0)
b = ImageWidth(1)
For i = 0 To a - 1
DrawImage(ImageID(2), b, 0)
b + ImageWidth(2)
Next i
DrawImage(ImageID(3), b, 0)
StopDrawing()
SetGadgetState(1, ImageID(0))
EndIf
EndIf
EndIf
EndSelect
EndSelect
ForEver
EndIf
End
DataSection
Links:
Data.l $01324D42, $00000000, $00360000, $00280000, $00030000, $00150000, $00010000, $00000018
Data.l $00FC0000, $0EC40000, $0EC40000, $00000000, $00000000, $E2B80000, $7A855BD7, $00748149
Data.l $77560000, $747B5A70, $00A8B186, $6B4A0000, $BDC4A364, $00EFF8CD, $4F3A0000, $DCDFCA4C
Data.l $00F0F3D4, $4E390000, $F7FAE54B, $00F5F8D9, $4F240000, $F7FFD546, $00F0F3D6, $50250000
Data.l $F7FFD547, $00F0F3D6, $50210000, $F7FFD147, $00F0F6D4, $51220000, $F8FFD248, $00F1F7D5
Data.l $53210000, $F7FFD147, $00F1F7D3, $54220000, $F8FFD248, $00F2F8D4, $53290000, $F8FFD948
Data.l $00F2F8DC, $53290000, $F9FFDA48, $00F2F8DC, $53310000, $F5FFDE48, $00F8FDE9, $4F2D0000
Data.l $F7FFE044, $00F5FAE6, $522E0000, $FBFFE346, $00F5FDE6, $522E0000, $FAFFE246, $00F7FFE8
Data.l $5B270000, $EEFFCB4A, $00FCFFE1, $622E0000, $CADBA751, $00FCFFE1, $8C4A0000, $8EA15F79
Data.l $00C3D19C, $DD9B0000, $6A7D3BCA, $00606E39, $00000000
Mitte:
Data.l $01324D42, $00000000, $00360000, $00280000, $00040000, $00150000, $00010000, $00000018
Data.l $00FC0000, $0EC40000, $0EC40000, $00000000, $00000000, $5B0F0000, $3B5B0F3B, $0F3B5B0F
Data.l $DDB43B5B, $D8DDB4D8, $B4D8DDB4, $E6BDD8DD, $E1E6BDE1, $BDE1E6BD, $EADEE1E6, $FCEADEFC
Data.l $DEFCEADE, $ECE0FCEA, $FEECE0FE, $E0FEECE0, $F4E7FEEC, $F6F4E7F6, $E7F6F4E7, $F4E7F6F4
Data.l $F6F4E7F6, $E7F6F4E7, $F5E2F6F4, $F8F5E2F8, $E2F8F5E2, $F6E3F8F5, $F9F6E3F9, $E3F9F6E3
Data.l $F7DEF9F6, $FBF7DEFB, $DEFBF7DE, $F8DFFBF7, $FCF8DFFC, $DFFCF8DF, $F8E5FCF8, $FDF8E5FD
Data.l $E5FDF8E5, $F8E5FDF8, $FDF8E5FD, $E5FDF8E5, $F8ECFDF8, $FAF8ECFA, $ECFAF8EC, $FBEFFAF8
Data.l $FDFBEFFD, $EFFDFBEF, $FAEDFDFB, $F8FAEDF8, $EDF8FAED, $FFF3F8FA, $FEFFF3FE, $F3FEFFF3
Data.l $FFE7FEFF, $F7FFE7F7, $E7F7FFE7, $FFECF7FF, $FCFFECFC, $ECFCFFEC, $FFE0FCFF, $F8FFE0F8
Data.l $E0F8FFE0, $542DF8FF, $45542D45, $2D45542D, $00004554
Rechts:
Data.l $01324D42, $00000000, $00360000, $00280000, $00030000, $00150000, $00010000, $00000018
Data.l $00FC0000, $0EC40000, $0EC40000, $00000000, $00000000, $694B0000, $7B806264, $00ECEFD2
Data.l $AD810000, $768357A0, $00778854, $EEC20000, $AEBB8FE1, $00536430, $EEB10000, $CFE9ACD4
Data.l $00456319, $F4B70000, $EAFFC7DA, $0036540A, $F6CA0000, $E0E6BAF0, $00415C17, $F6CA0000
Data.l $E1E7BBF0, $00425D18, $F3D00000, $E6E3C0F6, $00465A1D, $F4D10000, $E7E4C1F7, $00475B1E
Data.l $F4D40000, $E9E4C4F9, $004A5920, $F5D50000, $EAE5C5FA, $004B5A21, $FAD10000, $E4E9C0F5
Data.l $00485E1E, $FAD10000, $E5EAC1F5, $00485E1E, $FFD10000, $DEEFB8F7, $0037590D, $EFB80000
Data.l $E8F9C2DE, $00416317, $FFD00000, $F0FFCDF3, $0033570D, $FFCD0000, $EBFFC8F0, $002E5208
Data.l $FBD30000, $EDF8D0F0, $0050672F, $FFDF0000, $C7D2AAFC, $004A6129, $DEC70000, $8C8A73E0
Data.l $0068724D, $5C450000, $7A78615E, $00D1DBB6, $00000000
EndDataSection