Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Imagick zmiania kolory grafiki
Forum PHP.pl > Forum > PHP
sazian
Witam,
mam problem z metodą compositeImage, z jakiegoś powodu zmienia ona kolory pliku wynikowego - stają się bardziej blade/pastelowe.

  1. $outputImage = new Imagick();
  2. $outputImage->setFormat('png');
  3. $img1 = new Imagick('jakiś jpg');
  4. $outputImage->newImage(X, Y, new ImagickPixel('none'));
  5. $outputImage->compositeImage($img1, Imagick::COMPOSITE_DEFAULT, 0, 0);
  6.  
  7.  
  8. header('Content-Type: image/png');
  9. echo $outputImage->getImageBlob();


jeśli wyświetlę obrazek $img1 to wszystko jest ok, ale $outputImage ma zmienione kolory.
Oczywiście docelowy kod będzie(jest) bardziej złożony więc musi tam być łączenie warstw.

Plik poglądowy https://www.dropbox.com/s/ouzr0izx6teu6wa/img.png
z lewej $img1 z prawej $outputImage

Macie jakieś pomysły co zrobić żeby plik zachowywał kolory oryginału ?
trueblue
Może pomoże: http://stackoverflow.com/a/23921696/5889778
maly_swd
JPG jest CMYK czy RGB?
sazian
@trueblue: nie pomogło sad.gif
@maly_swd: wszystko jest w RGB
trueblue
A próbowałeś innej wartości COMPOSITE?
Jest tam COMPOSITE_SRC czy też COMPOSITE_DST.
sazian
Tak,
próbowałem między innymi COMPOSITE_SRC, COMPOSITE_ADD, COMPOSITE_COPY,COMPOSITE_DST(ten daje pusty plik) i pewnie jeszcze kilka innych

próbowałem dodać parametr z kanałem Imagick::CHANNEL_ALL i nic sad.gif Ciągle to samo

edit:
wyciągnąłem jeszcze szczegółowe informacje o pliku przez "identify -verbose ", ale ja nie widzę tam nic co może powodować błędy.
Cytat
Format: JPEG (Joint Photographic Experts Group JFIF format)
Class: DirectClass
Geometry: 257x600+0+0
Resolution: 300x300
Print size: 0.856667x2
Units: PixelsPerCentimeter
Type: TrueColor
Endianess: Undefined
Colorspace: sRGB
Depth: 8-bit
Channel depth:
red: 8-bit
green: 8-bit
blue: 8-bit
Channel statistics:
Red:
min: 0 (0)
max: 255 (1)
mean: 186.97 (0.733216)
standard deviation: 75.3839 (0.295623)
kurtosis: -0.719267
skewness: -0.896019
Green:
min: 0 (0)
max: 255 (1)
mean: 170.839 (0.669959)
standard deviation: 63.0838 (0.247387)
kurtosis: 0.1926
skewness: -1.01734
Blue:
min: 0 (0)
max: 255 (1)
mean: 105.381 (0.41326)
standard deviation: 79.4752 (0.311667)
kurtosis: -1.11282
skewness: 0.786633
Image statistics:
Overall:
min: 0 (0)
max: 255 (1)
mean: 154.397 (0.605478)
standard deviation: 72.9808 (0.286199)
kurtosis: -0.697825
skewness: -0.42902
Rendering intent: Perceptual
Gamma: 0.454545
Chromaticity:
red primary: (0.64,0.33)
green primary: (0.3,0.6)
blue primary: (0.15,0.06)
white point: (0.3127,0.329)
Interlace: None
Background color: white
Border color: srgb(223,223,223)
Matte color: grey74
Transparent color: black
Compose: Over
Page geometry: 257x600+0+0
Dispose: Undefined
Iterations: 0
Compression: JPEG
Quality: 99
Orientation: Undefined
Properties:
date:create: 2016-11-29T11:57:11+01:00
date:modify: 2016-11-29T11:57:11+01:00
exif:Compression: 6
exif:DateTime: 2016:09:27 11:55:07
exif:ExifOffset: 162
exif:ExifVersion: 48, 50, 51, 48
exif:JPEGInterchangeFormat: 274
exif:JPEGInterchangeFormatLength: 17305
exif:ResolutionUnit: 3
exif:Software: Adobe Photoshop Lightroom 5.6 (Windows)
exif:XResolution: 300/1
exif:YResolution: 300/1
jpeg:colorspace: 2
jpeg:sampling-factor: 1x1,1x1,1x1
signature: 70f38eaf2c566ac2bc3e9f7d763abb1e421842ed061a050230d85db01f203cbb
xmpMM:DerivedFrom:
Profiles:
Profile-8bim: 17374 bytes
Profile-exif: 17585 bytes
Profile-icc: 560 bytes
Description: Adobe RGB (1998)
Manufacturer: Adobe RGB (1998)
Model: Adobe RGB (1998)
Copyright: Copyright 1999 Adobe Systems Incorporated
Profile-xmp: 9524 bytes
Artifacts:
filename: PO1010.jpg
verbose: true
Tainted: False
Filesize: 196KB
Number pixels: 154K
trueblue
A spróbuj jakimś programem graficznym pozbyć się profilu kolorów z pliku.
sazian
faktycznie po zapisaniu w gimpie działa,
tylko teraz muszę wykombinować jak przekonwertować Adobe RGB na sRGB w locie sad.gif
trueblue
Jeśli dobrze rozumiem, to musiałbyś mieć profil w osobnym pliku i wczytać go:
http://php.net/manual/en/imagick.profileimage.php

Albo:
http://stackoverflow.com/questions/1671496...-php-or-imagick

To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.