![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 102 Pomógł: 0 Dołączył: 5.11.2006 Ostrzeżenie: (10%) ![]() ![]() |
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 !!!!! |
|
|
![]()
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 |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 102 Pomógł: 0 Dołączył: 5.11.2006 Ostrzeżenie: (10%) ![]() ![]() |
80 X 80 to miniaturka większego.
-------------------- Kobiety są jak pixele - ładne tylko z daleka!
Kobieta $zmienną jest ;D Fuck all my project !!!!! |
|
|
![]()
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ś
![]() |
|
|
![]()
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
|
|
|
![]()
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 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 21.08.2025 - 16:00 |