Poszukuję sposobu na dodanie jednolitego koloru do istniejącego obrazu za pomocą Core Image. Znalazłem odniesienie do listy filtrów, ale nie ma nikogo, kto by to zrobił.Dodaj jednolitą kolorową ramkę z CIImage
Pomoc !!
Poszukuję sposobu na dodanie jednolitego koloru do istniejącego obrazu za pomocą Core Image. Znalazłem odniesienie do listy filtrów, ale nie ma nikogo, kto by to zrobił.Dodaj jednolitą kolorową ramkę z CIImage
Pomoc !!
To nie jest dokładnie to, o co prosiłeś o, ale może być lepiej, jeśli chcesz tylko do wyświetlania obrazu z obramowaniem (zamiast faktycznie rysunek obramowanie na nią) ...
Można użyć CALayer
dodać granice (i zaokrąglone narożniki, cienie, itd) do każdej UIView
...
// imgView is an instance of UIImageView, but this works with any UIView
imgView.layer.borderWidth = 2.0f;
imgView.layer.borderColor = [[UIColor blackColor] CGColor];
Należy również #import <QuartzCore/QuartzCore.h>
oraz link do ram QuartzCore to zadziałało.
Musimy mieć zasięg CIImage lub CGRect, w którym chcemy stworzyć solidną granicę. Następnie możemy narysować CIImage tworzący linię ciągłą w określonym obszarze i powtórzyć kroki jeszcze 3 razy dla różnych pozycji, aby narysować pełny, pełny prostokąt. Poniżej znajduje się fragment kodu, który narysuje prostą linię powyżej określonego obszaru.
CIImage *overlay1 = [CIImage imageWithColor:[CIColor colorWithRed:255/255.f green:0/255.f blue:0/255.f alpha:1.00f]];
overlay1 = [overlay1 imageByCroppingToRect:image.extent];
overlay1 = [overlay1 imageByApplyingFilter:@"CIPerspectiveTransformWithExtent" withInputParameters:@{@"inputExtent":[CIVector vectorWithCGRect:image.extent],@"inputTopLeft":[CIVector vectorWithCGPoint:CGPointMake(topLeft.x - 5, topLeft.y + 5)],@"inputTopRight":[CIVector vectorWithCGPoint:CGPointMake(topRight.x + 5, topRight.y + 5)],@"inputBottomLeft":[CIVector vectorWithCGPoint:CGPointMake(topLeft.x - 5, topLeft.y)],@"inputBottomRight":[CIVector vectorWithCGPoint:CGPointMake(topRight.x + 5, topRight.y) ]}];
overlay = [ overlay1 imageByCompositingOverImage:overlay];
Zachowałem szerokość 5 pikseli. topLeft, topRight .... to odpowiedni punkt CG dla pozycji. Dla pełnego prostokąta będziesz potrzebował także bottomLeft i bottomRight.
Nakładka to oryginalna kamera CII.
Nie wiem, dlaczego potrzebna jest transformacja perspektywy. Dlaczego nie wystarczy przyciąć do linii, jako prostokąt o szerokości 5, 4 razy. – user1055568
Dziękuję jhabbott, ale to mi nie pomaga. Próbuję zmodyfikować obraz, a nie tylko wyświetlić ramkę na górze. – frimoldi