| Autor |
Beitrag |
Karabulut
      
Beiträge: 17
|
Verfasst: Fr 22.08.03 16:30
ist es möglich en bild einzulesen, und dass in sagen wir mal, jeweils 20x20 pixel grosse teile zu zerschneiden. diese teile dan mit 2 pixel abstand einanderzuordnen?
|
|
Aya
      
Beiträge: 1964
Erhaltene Danke: 15
MacOSX 10.6.7
Xcode / C++
|
Verfasst: Fr 22.08.03 16:40
Hi,
| Karabulut hat folgendes geschrieben: | | ist es möglich en bild einzulesen, und dass in sagen wir mal, jeweils 20x20 pixel grosse teile zu zerschneiden. diese teile dan mit 2 pixel abstand einanderzuordnen? |
Ja, das ist möglich
(Oder wolltest du jetzt nochmehr wissen? *grinst frech*)
Au'revoir,
Aya~
_________________ Aya
I aim for my endless dreams and I know they will come true!
|
|
Karabulut 
      
Beiträge: 17
|
Verfasst: Fr 22.08.03 16:41
jo wär gut zu wissen wie ;D
|
|
Aya
      
Beiträge: 1964
Erhaltene Danke: 15
MacOSX 10.6.7
Xcode / C++
|
Verfasst: Fr 22.08.03 16:45
| Karabulut hat folgendes geschrieben: | | jo wär gut zu wissen wie ;D |
hihi
Ne, also.. du mußt das Bild halt in z.B. nen TBitmap laden.
Dann erstellst du dir ein zweites TBitmap welches die Breite = Bitmap1.Widht + (Bitmap1.Width div 20 * 2) hat (für die höhe entsprechend gleich), worein du dann die einzelnen stücke mit 2px abstand zeichnest.
Dann gehst du dein Bitmap1 in ner for-schleife durch und kopierst immer ein 20x20 großes Recht von Bitmap1 auf Bitmap2 ( CANVAS.COPYRECT).
Das war's..
Nen kompletten Code werde ich dir nich basteln, da immerhin du das programmieren willst, und nicht ich.. aber wenn du an einer stelle festhängst frag ruhig, werde helfen wo ich kann
(Das war jetzt die Theorie.. ich hab KA was du in Delphi kannst, adher weiß ich nich ob du weißt wie man nen TBitmap erstellt etc.. *g* Also einfach fragen bei fragen)
Au'revoir,
Aya~
_________________ Aya
I aim for my endless dreams and I know they will come true!
|
|
Karabulut 
      
Beiträge: 17
|
Verfasst: Fr 22.08.03 19:20
also ich lade das bild als image rein
da ich das schneiden per button auslösen will, also der benützer selber kann am bild nichts machen
ich hab aber zur zeit folgendes problem:
Delphi-Quelltext 1: 2: 3: 4: 5: 6:
| if OpenPictureDialog1.Execute then begin CurrentFile := OpenPictureDialog1.FileName; Image1.Picture.LoadFromFile(CurrentFile); end; end; |
das bild darf nicht grösser als 192 * 256 sein und nur eine farbtiefe von 256 farben besitzen. wie frage ich das jetzt da ab?
falls es die obigen anforderungen nicht erfüllt, soll das bild nicht angezeigt werden, sondern eine fehlermeldung kommen.
bitte um hilfe
achja, wegen der frage wie gut ich bin  sieht man hier ja , bin schlecht ^^
|
|
Karabulut 
      
Beiträge: 17
|
Verfasst: Sa 23.08.03 12:10
naja, konnte das problem selber lösen. hab jetzt aber eine andere frage
Delphi-Quelltext 1: 2: 3: 4:
| Vorlage := TBitmap.Create; Vorlage.Width := 400; Vorlage.Height := 400; Image2.Picture.Graphic := Vorlage; |
also ich erstelle hier ein TBitmap. das bitmap wird auch angezeigt, also komplett weiss. wie kann ich per butotn das bild färben? ich hatte es so probiert
Delphi-Quelltext 1:
| vorlage.canvas.brush.color := clblack; |
geht aber ned
hilfe 
|
|
Aya
      
Beiträge: 1964
Erhaltene Danke: 15
MacOSX 10.6.7
Xcode / C++
|
Verfasst: Sa 23.08.03 14:15
Mit Canvas.Brush.Color legst du nur die Farbe für den Pinsel fest. Benutz dannach mal:
Delphi-Quelltext 1: 2:
| Vorlange.Canvas.Brush.Color:=clBlack; Vorlage.Canvas.FillRect(Vorlage.ClientRect); |
Damit füllst du deine Vorlage mit der in Brush.Color angegebenen Farbe
Au'revoir,
Aya~
_________________ Aya
I aim for my endless dreams and I know they will come true!
|
|
Karabulut 
      
Beiträge: 17
|
Verfasst: Sa 23.08.03 15:03
das ClientRect wird bei meinem delphi nicht erkannt
kommt immer undeklarierter blabal
muss ich dazu was weiteres in Uses schreiben?
|
|
Aya
      
Beiträge: 1964
Erhaltene Danke: 15
MacOSX 10.6.7
Xcode / C++
|
Verfasst: Sa 23.08.03 15:06
Hi,
sorry.. hab mich verlesen *pfeift* Dachte du benutzt TImage
Beim TBitmap muß es so sein:
Delphi-Quelltext 1:
| Vorlage.Canvas.FillRect(Rect(0,0,Vorlage.Width,Vorlage.Height)); |
Au'revoir,
Aya~
_________________ Aya
I aim for my endless dreams and I know they will come true!
|
|
Karabulut 
      
Beiträge: 17
|
Verfasst: Sa 23.08.03 15:14
frage ^^
ich ruf per panelclick das farbenfenster auf, die farbe die ich wähle soll jetzt die hintergrudnfarbe von dem TBitmap sien
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9:
| procedure TForm1.Panel2Click(Sender: TObject); begin if colordialog1.Execute then begin hintergrund := colordialog1.Color; Vorlage.Canvas.Brush.Color:= hintergrund; Vorlage.Canvas.FillRect(Rect(0,0,Vorlage.Width,Vorlage.Height)); end; end; |
habs so gemacht, färb sich aber ned, wasn daran falsch
|
|
Aya
      
Beiträge: 1964
Erhaltene Danke: 15
MacOSX 10.6.7
Xcode / C++
|
Verfasst: Sa 23.08.03 15:26
Hi,
Vorlage ist ein TBitmap, ja???
Das TBitmap mußt du ja dann erstnoch irgendwo draufzeichnen, machst du das???
Au'revoir,
Aya~
_________________ Aya
I aim for my endless dreams and I know they will come true!
|
|
Karabulut 
      
Beiträge: 17
|
Verfasst: Mi 27.08.03 16:49
|
|
Aya
      
Beiträge: 1964
Erhaltene Danke: 15
MacOSX 10.6.7
Xcode / C++
|
Verfasst: Mi 27.08.03 18:35
Hi,
mach mal aus dieser Zeile:
Delphi-Quelltext 1:
| Image2.Picture.Graphic := Vorlage; |
lieber dashier:
Delphi-Quelltext 1:
| Image2.Picture.Bitmap.Assign(Vorlage); |
und deine 2te Procedure so:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10:
| procedure TForm1.Panel2Click(Sender: TObject); begin if colordialog1.Execute then begin hintergrund := colordialog1.Color; Vorlage.Canvas.Brush.Color:= hintergrund; Vorlage.Canvas.FillRect(Rect(0,0,Vorlage.Width,Vorlage.Height)); Image2.Picture.Bitmap.Assign(Vorlage); end; end; |
Au'revoir,
Aya~
_________________ Aya
I aim for my endless dreams and I know they will come true!
|
|
Karabulut 
      
Beiträge: 17
|
Verfasst: Sa 30.08.03 14:53
joa du bist gut
nur noch ein stückchen und ich habs ;D
jetzt muss ich nur noch dsa mit dem schneiden haben, das peil ich ned so ganz, vor allem die for-schleife
also ich hab nen button
bei buttonclick soll ja das bild dann vollständig geschnitten werden und dann die teile auf das zweite bitmap gelegt werden
wie geht das nun?
|
|
FeG
      
Beiträge: 77
Win XP Home, SuSE Linux 8.2 Prof
D3 Prof, D7 Prof
|
Verfasst: Sa 30.08.03 15:05
Hi,
du gehst das Bitmap in 20er Schritten und zwei Schleifen durch
Delphi-Quelltext 1: 2:
| for i:=0 to Bitmap.Width div 20 do for j:=0 to Bitmap.Height div 20 do ... |
Zeichnest das entprechende Rechteck in ein zweites Bitmap (.Draw), immer mit ein bisschen Rand (in Abhängigkeit von i, nämlich ...+i*2), ebenso den Rand für die höhe berechnen...
Und dann einfach Gehirn einschalten und loslegen...
MfG,
FeG
|
|
Karabulut 
      
Beiträge: 17
|
Verfasst: Mo 01.09.03 12:32
aber ich kenn die einzelnen delphi-draw befehle noch ned
helft mir bitte ein bissl mehr ;D
|
|
FeG
      
Beiträge: 77
Win XP Home, SuSE Linux 8.2 Prof
D3 Prof, D7 Prof
|
Verfasst: Mo 01.09.03 15:34
| Karabulut hat folgendes geschrieben: | aber ich kenn die einzelnen delphi-draw befehle noch ned  |
Die einzelnen??
Soviel gibt's da ja nun wirklich net... nämlich:
1) Canvas.Draw - "normales" Zeichnen
2) Canvas.StrechDraw - "gestrecktes" Zeichnen
Wobei du Draw brauchst...
Mach einfach mal, soweit du kommst, und wenn du noch Fragen zu einem speziellen Problem hast, meld dich wieder hier...
MfG,
FeG
|
|
Karabulut 
      
Beiträge: 17
|
Verfasst: Mo 01.09.03 16:30
naja, das prob ist ja eigentlich das ich so ziemlich 0 ahnung hab
ich weiss eben ned wie ich den jetzt dazu kriege das er auf buttonclick dasbild schneidet und rüber kopiert.
da macht mich die for-schleife auch ned klüger 
|
|
FeG
      
Beiträge: 77
Win XP Home, SuSE Linux 8.2 Prof
D3 Prof, D7 Prof
|
Verfasst: Mo 01.09.03 18:58
| Karabulut hat folgendes geschrieben: | naja, das prob ist ja eigentlich das ich so ziemlich 0 ahnung hab  |
Das ist dann allerdings ein grundsätzliches Problem... wie wär's mal mit ein paar Tutorials zum Thema??
Ich werde dir hier keinen kompletten Quellcode liefern, allerdings will ich mal versuchen, das ganze noch mal Schritt für Schritt und langsam zu erklären...
- Du nimmst drei TBitmaps.
- Ins eine lädts du das zu zerschneidende Bild.
- Das zweite ist das Zielbitmap.
- Das dritte fungiert als Zwischenablage.
- Dann nimmst du zwei for - Schleifen, um Bild1 horizontal und vertikal durchzugehen
- Bei jedem Schleifendurchlauf kopierst du einen 20x20 großen Ausschnitt aus Bild1 in Bild3. Dann machst du ein Draw auf Bild2 mit Bild3 (Bild3 als Parameter von Bild1.Canvas.Draw) und zwar an eine Stelle, die von den beiden Schleifenvariablen abhängt. Nennen wir die horizontale Schleifenvariablen i. Dann sähe die Formel für das setzen in horizontaler Position so aus:
Delphi-Quelltext
^^ Die *20 als "Hauptposition", damit die Stücke wieder in 20er-Schritten drangesetzt werden, die *2 als Abstand.
Und auf die Weise fügst du alle Bildteile ein...
Wenn was unklar ist, bitte bei mir beschweren
MfG,
FeG
|
|
Niels_
      
Beiträge: 117
|
Verfasst: Do 04.09.03 18:31
Titel: Jpg auch möglich??
kann ich ein bild (typ JPG) auch zerschneiden??? Denn das wäre doch mal was tolles!
|
|