Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] algorytm do wyszukiwania powiększonych obrazków
microh
post
Post #1





Grupa: Zarejestrowani
Postów: 102
Pomógł: 0
Dołączył: 5.11.2006

Ostrzeżenie: (10%)
X----


Witam serdecznie. Mam takie zadanie z życia wzięte:

Powiedzmy, że mam 30 000 obrazków. Rozmiarów 800px x 800px.

I jeden obrazek 80px x 80 px;

I zadanie: korzystając ze zmniejszonego obrazka znajdź ten większy - spośród tych 30 000.

Nie chodzi mi tu o gotowe rozwiązanie, ale o pomysł jak można by było to rozwiązać.

Pozdrawiam.


--------------------
Kobiety są jak pixele - ładne tylko z daleka!
Kobieta $zmienną jest ;D

Fuck all my project !!!!!
Go to the top of the page
+Quote Post
lukaskolista
post
Post #2





Grupa: Zarejestrowani
Postów: 872
Pomógł: 94
Dołączył: 31.03.2010

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


1. Zajedziesz serwer
2. Proponuje zapisywac to do bazy danych
3. Jesli juz musisz tak to robic, to:
ktory obrazek jest tym wyjsciowym? Wyjsciowym jset 80x80px, a 800x800px to jego powiekszenie, czy wyjsciowy to 800x800px, a 80x80px to jego miniatura?

Ten post edytował lukaskolista 19.09.2010, 12:07:47
Go to the top of the page
+Quote Post
microh
post
Post #3





Grupa: Zarejestrowani
Postów: 102
Pomógł: 0
Dołączył: 5.11.2006

Ostrzeżenie: (10%)
X----


80 X 80 to miniaturka większego.


--------------------
Kobiety są jak pixele - ładne tylko z daleka!
Kobieta $zmienną jest ;D

Fuck all my project !!!!!
Go to the top of the page
+Quote Post
Pawel_W
post
Post #4





Grupa: Zarejestrowani
Postów: 1 675
Pomógł: 286
Dołączył: 15.06.2009
Skąd: Wieliczka

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


no to gorzej, bo z małego nie zrobisz większego, z większego musisz zrobić mniejszy, a przerabianie takiej ilości zdjęć to porażka... najlepiej byłoby chyba robić to na wejściu i generować jakąś sumę md5 czy coś smile.gif
Go to the top of the page
+Quote Post
lukaskolista
post
Post #5





Grupa: Zarejestrowani
Postów: 872
Pomógł: 94
Dołączył: 31.03.2010

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


jezeli to ma byc "na 1 strzal" to mozesz pobrac wszystkie obrazki z folderu i wykonac na nich petle, w ktorej bedziesz kazdy duzy obrazek zmniejszal i porownywal z tym malym, ale dotego trzeba znac wartosc jaka jest podawana jako atrubut jakosci zdjecia, format z ktorego powstal itp. Jesli masz taka mozliwosc to zapisuj to w bazie, bo samo pobranie nazw obrazkow z folderu to duzo czasu
Go to the top of the page
+Quote Post
Zyx
post
Post #6





Grupa: Zarejestrowani
Postów: 952
Pomógł: 154
Dołączył: 20.01.2007
Skąd: /dev/oracle

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


Moja rada? Napisz to w C. PHP się zupełnie nie nadaje do tego typu rzeczy z powodów wydajnościowych. Samo porównywanie nie jest natomiast aż takie trudne. Pomysły, aby tylko zmniejszać każdy z nich to dobry start, ale tylko start, bo później dochodzi kwestia porównania pomniejszonego z pomniejszonym, a tu w grę wchodzą takie czynniki, jak użyty algorytm skalowania, stopień rozmycia, kompresja stratna i kupa innych rzeczy, które mogą rozwalić obrazek. Konieczna jest pewna heurystyka, czyli przyjęcie jakiegoś dopuszczalnego wskaźnika odchyleń i różnic. Czasami może znaleźć więcej niż jeden trafny wynik, ale jeśli zrobimy miniaturkę dwóch bardzo podobnych zdjęć, to nawet człowiek się pomyli.

Sposób na optymalizację: zamiast zmniejszać cały obrazek, zaczynamy od przeskalowania tylko obszaru będącego odpowiednikiem jednego piksela na pomniejszeniu i porównujemy go. Jeśli tam wychodzą straszne głupoty (czyli spodziewamy się czerwonego, a mamy niebieski), to już można bezpiecznie odrzucić tego kandydata i nie tracimy czasu na przeliczanie reszty.


--------------------
Specjalista ds. głupich i beznadziejnych, Zyx
Nowości wydawnicze: Open Power Collector 3.0.1.0 | Open Power Autoloader 3.0.3.0
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 Aktualny czas: 21.08.2025 - 16:00