Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [JavaScript][AJAX][PHP]Zmiana DPI - zmiana źródła
rafik73
post 2.01.2020, 15:12:15
Post #1





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

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


Witam
Za pomocą biblioteki dom-to-image tworzę obrazek z DIV'a:

[JAVASCRIPT] pobierz, plaintext
  1. var pdf = $('#pdf_area > .ol-viewport')[0];
  2. domtoimage.toJpeg(pdf,
  3. {
  4. quality : 1
  5. }
  6. )
  7. .then(function (dataUrl) {
  8. $.ajax({
  9. url : "dec.php",
  10. data : {
  11. ajax_dataUrl : dataUrl
  12. }
  13. ,
  14. context: this,
  15. success : function(callback) {
  16. } , //success
  17.  
  18. }); //ajax
[JAVASCRIPT] pobierz, plaintext


Stosując typeof wyszło mi, że dataUrl to string. Wysyłam go do pliku dec.php który wygląda tak:

  1. $ajax_dataUrl = isset($_POST['ajax_dataUrl']) ? $_POST['ajax_dataUrl'] : '';
  2.  
  3. $src = '1.jpg';
  4. $img = imagecreatefromjpeg($src);
  5. $new_x = 828;
  6. $new_y = 536;
  7. //$new_x = 424;
  8. //$new_y = 268;
  9. $img_new = imagecreatetruecolor($new_x, $new_y);
  10.  
  11. imagecopyresampled($img_new, $img, '0', '0', '0', '0', $new_x, $new_y, imagesx($img), imagesy($img));
  12. imagejpeg($img_new, $src, 100);
  13. imagedestroy($img);
  14.  
  15. // Change DPI
  16. $dpi_x = 144;
  17. $dpi_y = 144;
  18.  
  19. // Read the file
  20. $size = filesize($src);
  21. $img_new = file_get_contents($src);
  22.  
  23. // Update DPI information in the JPG header
  24. $img_new[13] = chr(1);
  25. $img_new[14] = chr(floor($dpi_x / 255));
  26. $img_new[15] = chr( $dpi_x % 255);
  27. $img_new[16] = chr(floor($dpi_y / 255));
  28. $img_new[17] = chr( $dpi_y % 255);
  29.  
  30. // Write the new JPG
  31. $f = fopen('thumb_'.$src, 'w');
  32. fwrite($f, $img_new, $size);
  33. fclose($f);


Skrypt ten ma za zadanie zmianę DPI pliku 1.jpg a chciałbym, żeby to robił w odniesieniu do
obrazka który wysyłam zmienną $ajax_dataUrl. Nie za bardzo wiem jak zmienić powyższy skrypt PHP.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
rafik73
post 20.01.2020, 14:36:32
Post #2





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

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


Nie za bardzo mogę sobie z tym poradzić.
Ten kod:
[APACHE] pobierz, plaintext
  1. <IfModule mod_setenvif.c>
  2. <IfModule mod_headers.c>
  3. <FilesMatch "\.(bmp|cur|gif|ico|jpe?g|png|svgz?|webp)$">
  4. SetEnvIf Origin ":" IS_CORS
  5. Header set Access-Control-Allow-Origin "*" env=IS_CORS
  6. </FilesMatch>
  7. </IfModule>
  8. </IfModule>
[APACHE] pobierz, plaintext


próbowałem dodawać do .httpaccess albo do httpd.conf ale bez efektu. Zdjęcie pobieram z canvas z użyciem Openlayers.
Przy tym typie mapy jaki używam w specyfikacji
https://openlayers.org/en/latest/apidoc/mod...ce_XYZ-XYZ.html
zalecają ustawienie parametru crossOrigin, ustawiam go zgodnie z kodem ze strony
https://developer.mozilla.org/en-US/docs/We...S_enabled_image
na wartość anonymous i dalej CORS blokuje wyświetlenie mapy w canvas.
To fragment kodu JS który konfiguruje wyświetlaną mapę:

[JAVASCRIPT] pobierz, plaintext
  1. var pdf_map_source_loaded_source = new ol.source.XYZ({url :'https://1.base.maps.cit.api.here.com/maptile/2.1/maptile/newest/normal.day/{z}/{x}/{y}/256/png?app_id=[moje APP_ID}&app_code={mój APP_CODE}'
  2. ,
  3. crossOrigin:'anonymous'
  4. });
[JAVASCRIPT] pobierz, plaintext


Okazało się,że to problem z kodem Api, który poprawiłem. Nic na to nie wskazywało. Dopiero pod konsolą w przeglądarce Edge wyrzuciło HTTP 401.
Chrome i Firefox nawet się nie zająknął co do tego błędu bardziej skupiając się na problemie z CORS.
Go to the top of the page
+Quote Post

Posty w temacie
- rafik73   [JavaScript][AJAX][PHP]Zmiana DPI - zmiana źródła   2.01.2020, 15:12:15
- - nospor   Noto zamiast imagecreatefromjpeg uzyj https://www...   2.01.2020, 15:18:38
- - rafik73   To próbowałem ale nie działa dałem [JAVASCRIPT] ...   2.01.2020, 15:18:44
- - nospor   Super, a skad my mamy wiedziec jak probowales? Pew...   2.01.2020, 15:19:13
- - rafik73   patrz wyżej   2.01.2020, 15:21:23
- - nospor   Wyzej NADAL nie napisales jak probowales....   2.01.2020, 15:22:11
- - rafik73   zamieniłem: [PHP] pobierz, plaintext $src = $ajax...   2.01.2020, 15:23:46
- - nospor   W linku do ktorego ciebie odeslalem, masz JEDEN pr...   2.01.2020, 15:29:36
- - rafik73   Na początek dałem tak: [PHP] pobierz, plaintext $...   2.01.2020, 16:46:46
- - nospor   Zauwaz, ze twoj tekst nie sklada sie z samego base...   2.01.2020, 16:47:45
- - rafik73   Masz na myśli nagłówek?   2.01.2020, 17:13:11
- - nospor   data:image/jpeg;base64,   2.01.2020, 17:44:33
- - rafik73   dałem: [PHP] pobierz, plaintext $del_string = 'da...   2.01.2020, 18:03:27
- - nospor   1) Uzywasz jakiejs zmiennej $string ktorej do...   2.01.2020, 18:06:36
- - rafik73   $string to przesyłany ciąg znaków zawarty w d...   2.01.2020, 18:08:39
- - nospor   Wiec pewnie cos zle tego base64 skopiowales. Jak s...   2.01.2020, 18:16:02
- - trueblue   A to: "& #65533;" skąd się wzięło?   2.01.2020, 18:18:05
- - rafik73   po odpaleniu Ajaxa i wygenerowaniu pliku obrazek j...   2.01.2020, 18:24:59
- - nospor   Kurcze, no ale wez troche samodzielnosci tu walnij...   2.01.2020, 19:41:07
- - rafik73   strlen()   2.01.2020, 19:57:15
- - nospor   Brawo   2.01.2020, 20:02:16
- - rafik73   Myślę, że doszedłem do ładu: [PHP] pobierz, plai...   2.01.2020, 20:05:41
- - nospor   Cytatfile_get_content czyta zawartość do stringa, ...   2.01.2020, 20:10:19
- - rafik73   Dziękuję za pomoc. Ech, jak się człowiek zasiedzi ...   3.01.2020, 13:00:08
- - nospor   A zes sie tego callback uczepil... Tu nie masz zad...   3.01.2020, 13:18:48
- - rafik73   Myślę, że response (callback) wysyła plik od klien...   3.01.2020, 13:22:15
- - nospor   Kurcze... nawet jak uzyjesz slowo callback w nawia...   3.01.2020, 13:32:57
- - rafik73   Ok, 1) wysyłam plik do obróbki za pomocą AJAX do ...   3.01.2020, 13:57:42
- - nospor   No masz to wyslac jako normalny formularz. O ...   3.01.2020, 14:37:20
|- - rafik73   Cytat(nospor @ 3.01.2020, 14:37:20 ) ...   3.01.2020, 15:07:10
- - trueblue   Jeśli wysłałeś w response zakodowany w base64 obra...   3.01.2020, 14:44:30
- - trueblue   Cytat(rafik73 @ 3.01.2020, 15:07:10 )...   3.01.2020, 15:10:10
- - rafik73   Tak. na localhoscie trwa to błyskawicznie   3.01.2020, 15:22:32
- - nospor   Nom, czyli dlugi czas to efekt wysylania na serwer...   3.01.2020, 15:23:33
|- - rafik73   Cytat(nospor @ 3.01.2020, 15:23:33 ) ...   3.01.2020, 15:28:02
- - nospor   1MB to 1 MegaByte a nie jeden MegaBit - to tak w k...   3.01.2020, 15:29:24
- - rafik73   Napisałem 1 MBit a nie 1 MB, czepiasz się o literó...   3.01.2020, 15:36:36
- - nospor   No wlasnie nie. W poscie nr 31 napisales 1MB a par...   3.01.2020, 15:41:31
- - rafik73   W poście 31 odniosłem się do wielkości obrazka w m...   3.01.2020, 15:55:46
- - nospor   A widzisz, zle zrozumialem Cytat1MBit wysyłania na...   3.01.2020, 15:58:21
- - rafik73   Tak sobie pomyślałem, że jakby zmienić DPI za pomo...   3.01.2020, 16:26:37
- - trueblue   A skąd wiesz czy wolne działanie skryptu nie jest ...   3.01.2020, 17:19:41
|- - rafik73   Cytat(trueblue @ 3.01.2020, 17:19:41 ...   6.01.2020, 18:12:21
- - nospor   CytatA skąd wiesz czy wolne działanie skryptu nie ...   3.01.2020, 17:21:06
- - trueblue   A dlaczego skalujesz obrazek w PHP pomimo, że pisa...   6.01.2020, 20:26:18
- - rafik73   Po ostatnich przeróbkach ustawiam wymiary ma sztyw...   7.01.2020, 07:26:08
- - trueblue   Tak. https://javascript.info/blob#from-blob-to-arr...   7.01.2020, 09:52:30
- - rafik73   Wersja na szybko - testowane, działa https://git...   10.01.2020, 07:46:32
- - trueblue   Również na identycznej zasadzie. Szkoda, że nie po...   10.01.2020, 09:23:39
- - rafik73   Można "pociąć" tą bibliotekę i wyciągnąć...   18.01.2020, 20:17:52
- - trueblue   https://developer.mozilla.org/en-US/docs/We...S_en...   18.01.2020, 21:40:53
- - rafik73   Nie za bardzo mogę sobie z tym poradzić. Ten kod:...   20.01.2020, 14:36:32


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: 12.06.2024 - 21:24