Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Cięcie pliku graficznego według transparent png
KotWButach
post 4.12.2018, 15:28:38
Post #1





Grupa: Zarejestrowani
Postów: 361
Pomógł: 10
Dołączył: 8.02.2012

Ostrzeżenie: (0%)
-----


Mam do was wielką prośbę, czy ktoś orientuje się czego szukać, użyć do napisania skryptu, który wziąłby plik PNG np taki: gdzie byłoby kilka kwadratów z jakąś zawartością i puste miejsce miedzy nimi czyli przezroczystość. I pociepło plik tak by każdy kwadrat stał się oddzielnym plikiem JPG lub PNG. Czyli

PLIK PNG
-------------------------------------------------

KWADRAT1
KWADRAT3

KWADRAT2
-------------------------------------------------

REZULTAT
PLIK JPG
KWADRAT1
PLIK JPG
KWADRAT2
PLIK JPG
KWADRAT3
Go to the top of the page
+Quote Post
nospor
post 4.12.2018, 15:31:32
Post #2





Grupa: Moderatorzy
Postów: 36 446
Pomógł: 6292
Dołączył: 27.12.2004




znasz polozenie tych kwadratow na obrazku? Jak tak to raczej zwykle GD z php ci wystarczy


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
KotWButach
post 4.12.2018, 15:39:42
Post #3





Grupa: Zarejestrowani
Postów: 361
Pomógł: 10
Dołączył: 8.02.2012

Ostrzeżenie: (0%)
-----


Problem własnie w tym że nie znam ich położenia tzn mogą się zmieniać, czasem jest ich mniej czasem więcej. Co więcej elementy są różnej wielkości.

Ten post edytował KotWButach 4.12.2018, 15:41:48
Go to the top of the page
+Quote Post
trueblue
post 4.12.2018, 16:57:12
Post #4





Grupa: Zarejestrowani
Postów: 6 761
Pomógł: 1822
Dołączył: 11.03.2014

Ostrzeżenie: (0%)
-----


Te kwadraty w pliku PNG są jeden po drugim, czy może być również kilka w rzędzie?


--------------------
Go to the top of the page
+Quote Post
KotWButach
post 4.12.2018, 22:01:55
Post #5





Grupa: Zarejestrowani
Postów: 361
Pomógł: 10
Dołączył: 8.02.2012

Ostrzeżenie: (0%)
-----


Może być kilka w rzędzie sad.gif. Takie puzzle
Go to the top of the page
+Quote Post
trueblue
post 4.12.2018, 22:21:55
Post #6





Grupa: Zarejestrowani
Postów: 6 761
Pomógł: 1822
Dołączył: 11.03.2014

Ostrzeżenie: (0%)
-----


Zrobiłbym to tak:
- skanujesz obraz liniami poziomymi,
- jeśli natrafisz na nieprzezroczysty punkt, to zapisujesz (x1,y1),
- skanujesz dalej, jeśli natrafisz na przezroczysty lub koniec, to zapisujesz (x2),
- teraz lecisz od x2 w dół,
- jeśli trafisz na przezroczysty lub koniec, to zapisujesz (y2),
- w tym momencie masz jeden nieprzezroczysty obszar (x1,y1,x2,y2),
- zapisujesz ten wycinek i czyścisz fragment,
- teraz lecisz znów od punktu 0,0.

Nie jest to optymalny algorytm, ale uwalnia Cię od problemów kiedy skanując kolejne linie natrafisz na nieprzezroczyste obszary, które są fragmentami, które zaczęły się wyżej (np. na lewo jest niski obszar, a obok niego wysoki, więc skanując pod niskim trafisz na drugą połowę tego wysokiego).


--------------------
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 19.04.2024 - 14:38