Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

3 Stron V  < 1 2 3 >  
Reply to this topicStart new topic
> [JavaScript][AJAX][PHP]Zmiana DPI - zmiana źródła
nospor
post 2.01.2020, 20:02:16
Post #21





Grupa: Moderatorzy
Postów: 36 456
Pomógł: 6296
Dołączył: 27.12.2004




Brawo


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

"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
rafik73
post 2.01.2020, 20:05:41
Post #22





Grupa: Zarejestrowani
Postów: 182
Pomógł: 0
Dołączył: 19.03.2014

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


Myślę, że doszedłem do ładu:

  1. $ajax_dataUrl = isset($_POST['ajax_dataUrl']) ? $_POST['ajax_dataUrl'] : '';
  2.  
  3.  
  4.  
  5. $del_string = 'data:image/jpeg;base64,';
  6. $src = str_replace($del_string, "", $ajax_dataUrl);
  7.  
  8.  
  9. $src = base64_decode($src);
  10.  
  11. //$img = imagecreatefromstring($src);
  12.  
  13. $img = $src;
  14. $new_x = 828;
  15. $new_y = 536;
  16. //$new_x = 424;
  17. //$new_y = 268;
  18. $img_new = imagecreatetruecolor($new_x, $new_y);
  19.  
  20. imagecopyresampled($img_new, $img, '0', '0', '0', '0', $new_x, $new_y, imagesx($img), imagesy($img));
  21. imagejpeg($img_new, $src, 100);
  22. imagedestroy($img);
  23.  
  24. // Change DPI
  25. $dpi_x = 144;
  26. $dpi_y = 144;
  27.  
  28. // Read the file
  29. $size = strlen($src);
  30. $img_new = $src;
  31.  
  32. // Update DPI information in the JPG header
  33. $img_new[13] = chr(1);
  34. $img_new[14] = chr(floor($dpi_x / 255));
  35. $img_new[15] = chr( $dpi_x % 255);
  36. $img_new[16] = chr(floor($dpi_y / 255));
  37. $img_new[17] = chr( $dpi_y % 255);
  38.  
  39. // Write the new JPG
  40. $f = fopen('test.jpg', 'w');
  41. fwrite($f, $img_new, $size);
  42. fclose($f);


file_get_content czyta zawartość do stringa, a ja takową zawartość już posiadam w $src po obcięciu nagłówka.
Go to the top of the page
+Quote Post
nospor
post 2.01.2020, 20:10:19
Post #23





Grupa: Moderatorzy
Postów: 36 456
Pomógł: 6296
Dołączył: 27.12.2004




Cytat
file_get_content czyta zawartość do stringa, a ja takową zawartość już posiadam w $src po obcięciu nagłówka.


Dokladnie tak. Jak widzisz trudne to nie bylo smile.gif


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

"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
rafik73
post 3.01.2020, 13:00:08
Post #24





Grupa: Zarejestrowani
Postów: 182
Pomógł: 0
Dołączył: 19.03.2014

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


Dziękuję za pomoc. Ech, jak się człowiek zasiedzi nad projektem to zamulenie kieruje człowieka na ścieżkę łatwizny a to nie tędy droga. Czas na mały reset zasobów. Pozdrawiam i dziękuję.

Ostatnia prośba. Jest już późno i mam dosyć. Próbuję pobrać ten obrazek w ten sposób:

  1. header("Content-Type: image/jpeg");
  2. header('Content-Disposition: attachment; filename="ff.jpg"');
  3.  
  4. echo $img_new;


i nie działa.

Zależy mi na opcji SAVE AS.

Aha, działa:

  1. $f = fopen('test.jpg', 'w');
  2. fwrite($f, $img_new , $size);
  3. fclose($f);



OK, już sobie poradziłem. Problem był w tym, że skrypt PHP działał wywołany Ajaxem. Zwróciłem obrobiony obrazek callback'iem
i wyświetliłem w JS:

PHP:

  1. $ajax_dataUrl = isset($_POST['ajax_dataUrl']) ? $_POST['ajax_dataUrl'] : '';
  2. $ajax_pdf_zoom_number = isset($_POST['ajax_pdf_zoom_number']) ? $_POST['ajax_pdf_zoom_number'] : '';
  3.  
  4.  
  5. $path = $ajax_dataUrl;
  6.  
  7. $del_string = 'data:image/jpeg;base64,';
  8. $path = str_replace($del_string, "", $path);
  9. $path = base64_decode($path);
  10. $image = substr_replace($path, pack("cnn", 1, 180, 180), 13, 5);
  11.  
  12. $enc = base64_encode($image);
  13. $callback = $del_string.$enc;
  14. /*
  15. $f = fopen('Zoom_numer'.$ajax_pdf_zoom_number.'.jpg', 'w');
  16. fwrite($f, $image);
  17. fclose($f);
  18. */
  19. echo $callback;


JS:

[JAVASCRIPT] pobierz, plaintext
  1. var pdf = $('#pdf_area > .ol-viewport')[0];
  2.  
  3. domtoimage.toJpeg(pdf,
  4. {
  5. quality : 1
  6. }
  7. )
  8. .then(function (dataUrl) {
  9.  
  10. // alert(dataUrl);
  11. //########################################################
  12.  
  13. $.ajax({ // ajax
  14. type : "POST",
  15. url : "dec2.php",
  16. data : {
  17. ajax_dataUrl : dataUrl,
  18. ajax_pdf_zoom_number : pdf_zoom_number
  19. }
  20. ,
  21. context: this,
  22.  
  23. success : function(callback) {
  24.  
  25. var link = document.createElement('a');
  26. link.download = 'Zoom_numer_' + pdf_zoom_number +'.jpg';
  27. link.href = callback;
  28. link.click();
  29.  
  30. } //success
  31.  
  32. }); //ajax
[JAVASCRIPT] pobierz, plaintext


A jak aktywować pobieranie tego pliku bez callbacku Ajaxa?
Go to the top of the page
+Quote Post
nospor
post 3.01.2020, 13:18:48
Post #25





Grupa: Moderatorzy
Postów: 36 456
Pomógł: 6296
Dołączył: 27.12.2004




A zes sie tego callback uczepil... Tu nie masz zadnego callback tylko zwykly response. I co ci on przeszkadza?

A jak chcesz normalnie to normalnie masz slac forma a potem naglowkami leciec jak miales oryginalnie


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

"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
rafik73
post 3.01.2020, 13:22:15
Post #26





Grupa: Zarejestrowani
Postów: 182
Pomógł: 0
Dołączył: 19.03.2014

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


Myślę, że response (callback) wysyła plik od klienta na serwer co wydłuża proces oczekiwania na pobieranie.
Próbuję tak, ale nie chodzi:

  1. header("Content-type: image/jpeg");
  2. header('Content-Disposition: attachment; filename="'.basename("eee.jpg").'"');
  3.  
  4. echo $image;


Ten post edytował rafik73 3.01.2020, 13:24:44
Go to the top of the page
+Quote Post
nospor
post 3.01.2020, 13:32:57
Post #27





Grupa: Moderatorzy
Postów: 36 456
Pomógł: 6296
Dołączył: 27.12.2004




Kurcze...
nawet jak uzyjesz slowo callback w nawiasie, to nadal jest w BLEDZIE. Przestan uzywac slowo callback w tym kontekscie bo to jest zle.

Rowniez response to nie idzie z przegladarki na serwer tylko z serwera do przegladarki. REQUEST idzie z przegladarki na serwer. Zapoznaj sie z tymi podstawomi pojeciami i przestan w koncu ich uzywac bez skladu i ladu.

I nie, mowilem ci ze headers masz dawac w normalnym wyslaniu forma a nie w ajax


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

"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
rafik73
post 3.01.2020, 13:57:42
Post #28





Grupa: Zarejestrowani
Postów: 182
Pomógł: 0
Dołączył: 19.03.2014

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


Ok,
1) wysyłam plik do obróbki za pomocą AJAX do skryptu PHP który modyfikuje jego DPI.
2) chcę, żeby zmodyfikowany obrazek był automatycznie pobrany bez powrotu do JS
3) co masz na myśli pisząc "wysłać formą"?
Go to the top of the page
+Quote Post
nospor
post 3.01.2020, 14:37:20
Post #29





Grupa: Moderatorzy
Postów: 36 456
Pomógł: 6296
Dołączył: 27.12.2004




No masz to wyslac jako normalny formularz. O
<form>
.....
</form>
slyszal?

Jednak nawet jesli wyslesz to jako normalny form, to nadal te bajty obrazka bedziesz slal na serwer wiec za bardzo nie wiem jaki z tego zysk bedziesz mial. Generalnie, jak chccesz by serwer ci przetworzył ten obrazek to tak czy siak na ten serwer musisz go wyslac niewazne jak. Wiec argument o wolnym wysylaniu na serwer jakos nie pasuje.


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

"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
trueblue
post 3.01.2020, 14:44:30
Post #30





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

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


Jeśli wysłałeś w response zakodowany w base64 obrazek, to kiedy wywołujesz kliknięcie na linku, to obrazek nie jest pobierany ponownie z serwera, tylko bezpośrednio z przeglądarki.
Nawet gdyby Ci się udało wywołać pobierane bezpośrednio w PHP, to nic na tym nie zaoszczędzisz.


--------------------
Go to the top of the page
+Quote Post
rafik73
post 3.01.2020, 15:07:10
Post #31





Grupa: Zarejestrowani
Postów: 182
Pomógł: 0
Dołączył: 19.03.2014

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


Cytat(nospor @ 3.01.2020, 14:37:20 ) *
No masz to wyslac jako normalny formularz. O
<form>
.....
</form>
slyszal?

Jednak nawet jesli wyslesz to jako normalny form, to nadal te bajty obrazka bedziesz slal na serwer wiec za bardzo nie wiem jaki z tego zysk bedziesz mial. Generalnie, jak chccesz by serwer ci przetworzył ten obrazek to tak czy siak na ten serwer musisz go wyslac niewazne jak. Wiec argument o wolnym wysylaniu na serwer jakos nie pasuje.


Słyszał. Myślałem, że chodzi ci o formularz zamiast ajaxa, a nie o wysłanie obrazka formularzem.




Cytat(trueblue @ 3.01.2020, 14:44:30 ) *
Jeśli wysłałeś w response zakodowany w base64 obrazek, to kiedy wywołujesz kliknięcie na linku, to obrazek nie jest pobierany ponownie z serwera, tylko bezpośrednio z przeglądarki.
Nawet gdyby Ci się udało wywołać pobierane bezpośrednio w PHP, to nic na tym nie zaoszczędzisz.


Skoro tak to odpuszczam dziwaczenie. Tylko jak na niecały 1MB obrazka to trochę muli ta cała operacja.
Go to the top of the page
+Quote Post
trueblue
post 3.01.2020, 15:10:10
Post #32





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

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


Cytat(rafik73 @ 3.01.2020, 15:07:10 ) *
Skoro tak to odpuszczam dziwaczenie. Tylko jak na niecały 1MB obrazka to trochę muli ta cała operacja.

A jeśli nie wstawiasz do linku zawartości response, to również trwa długo (zamiast kliknięcia wstaw alert)?


--------------------
Go to the top of the page
+Quote Post
rafik73
post 3.01.2020, 15:22:32
Post #33





Grupa: Zarejestrowani
Postów: 182
Pomógł: 0
Dołączył: 19.03.2014

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


Tak.

na localhoscie trwa to błyskawicznie
Go to the top of the page
+Quote Post
nospor
post 3.01.2020, 15:23:33
Post #34





Grupa: Moderatorzy
Postów: 36 456
Pomógł: 6296
Dołączył: 27.12.2004




Nom, czyli dlugi czas to efekt wysylania na serwer i obrobki przez serwer


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

"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
rafik73
post 3.01.2020, 15:28:02
Post #35





Grupa: Zarejestrowani
Postów: 182
Pomógł: 0
Dołączył: 19.03.2014

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


Cytat(nospor @ 3.01.2020, 15:23:33 ) *
Nom, czyli dlugi czas to efekt wysylania na serwer i obrobki przez serwer

No to tego się nie przeskoczy, chyba, że mi światłowód podciągną closedeyes.gif

1MBit wysyłania na VDSL i wszystko jasne (jeśli oczywiście osiągnie maksa). Muszę zrobić test i udostępnić net z LTE, tam wysyłanie szybsze. ph34r.gif
Go to the top of the page
+Quote Post
nospor
post 3.01.2020, 15:29:24
Post #36





Grupa: Moderatorzy
Postów: 36 456
Pomógł: 6296
Dołączył: 27.12.2004




1MB to 1 MegaByte a nie jeden MegaBit - to tak w kwestii rzeczy, ktore znowu mylisz wink.gif


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

"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
rafik73
post 3.01.2020, 15:36:36
Post #37





Grupa: Zarejestrowani
Postów: 182
Pomógł: 0
Dołączył: 19.03.2014

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


Napisałem 1 MBit a nie 1 MB, czepiasz się o literówkę (duże b zamiast małego)
https://pl.wikipedia.org/wiki/Megabit
Czasem wyluzuj chłopie bo mi się to zaczyna kojarzyć z Adasiem Miauczyńskim z "Dnia Świra" - wszystko poprawiał (nerwica natręctw).
Życie to nie bity- 1 lub 0, ale kubity
https://pl.wikipedia.org/wiki/Kubit
Pozdrawiam i dziękuję specool.gif biggrin.gif
Go to the top of the page
+Quote Post
nospor
post 3.01.2020, 15:41:31
Post #38





Grupa: Moderatorzy
Postów: 36 456
Pomógł: 6296
Dołączył: 27.12.2004




No wlasnie nie. W poscie nr 31 napisales 1MB a pare postow pozniej napisales 1MBit. Ewidetnie wynika, ze dla ciebie to jedno i to samo.
A najlepsze jest to, ze jak ciebie poprawiam, to mi wysylasz linka do wikipedii ze niby ty masz racje, a tam wyraznie rozroznione jest MB od Mb/Mbit (b z malej litery) co tylko udowadnia ze ty sie myliles

I bym ciebie nie poprawial o te nieszczesnie bity gdybys wczesniej nie popelnial tylu innych bledow. Operujesz na pojeciach, ktorych nie rozumiesz i tylko wprowadzasz innych i siebie w blad. No ale jak wolisz tak zyc, twoja sprawa smile.gif


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

"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
rafik73
post 3.01.2020, 15:55:46
Post #39





Grupa: Zarejestrowani
Postów: 182
Pomógł: 0
Dołączył: 19.03.2014

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


W poście 31 odniosłem się do wielkości obrazka w megabajtach a w poście 35 do prędkości wysyłania łącza w megabitach. Co do reszty masz absolutną racje - totalnie to pokiełbasiłem na zasadzie "gdzieś dzwoni ale nie wiem gdzie", ale do końca nie jest tak,że kompletnie nie znam tych pojęć - taki los niedzielnego "programisty" - więc proszę o wyrozumiałość.
Go to the top of the page
+Quote Post
nospor
post 3.01.2020, 15:58:21
Post #40





Grupa: Moderatorzy
Postów: 36 456
Pomógł: 6296
Dołączył: 27.12.2004




A widzisz, zle zrozumialem
Cytat
1MBit wysyłania na VDSL
Sadzilem ze wysylasz 1MB danych a nie dane z predkoscia 1Mbit - b z malej wink.gif
A Dzien Swira uwielbiam - tak to o mnie biggrin.gif


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

"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

3 Stron V  < 1 2 3 >
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: 26.04.2024 - 12:51