2012-07-01 43 views

Trả lời

1

Đây không phải là chính xác những gì bạn được hỏi về, nhưng nó có thể là tốt hơn nếu bạn chỉ muốn hiển thị hình ảnh với một biên giới (chứ không phải thực sự vẽ một biên giới vào nó) ...

Bạn có thể sử dụng CALayer để thêm khung viền (và góc tròn, bóng, vv) với bất kỳ UIView ...

// imgView is an instance of UIImageView, but this works with any UIView 
imgView.layer.borderWidth = 2.0f; 
imgView.layer.borderColor = [[UIColor blackColor] CGColor]; 

Bạn cũng cần phải #import <QuartzCore/QuartzCore.h> và liên kết đến các khuôn khổ QuartzCore để làm việc này.

+0

Cảm ơn bạn jhabbott nhưng nó không giúp tôi. Tôi đang cố gắng sửa đổi hình ảnh, không chỉ hiển thị một đường viền ở trên cùng của nó. – frimoldi

2

Chúng tôi cần có mức độ CII hoặc CGRect mà chúng tôi muốn tạo đường viền chắc chắn. Hơn nữa, chúng ta có thể vẽ một CIImage tạo thành một đường liền nét trong khu vực xác định, và lặp lại các bước cho 3 lần nữa cho các vị trí khác nhau để vẽ một hình chữ nhật rắn hoàn chỉnh. Sau đây là đoạn mã sẽ vẽ một đường liền thẳng trên khu vực được chỉ định.

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]; 

Tôi đã giữ chiều rộng cho 5 pixel. topLeft, topRight .... là CGPoint tương ứng cho vị trí này. Đối với một hình chữ nhật hoàn chỉnh, bạn cũng sẽ cần bottomLeft và bottomRight.

Lớp phủ là CIImage gốc.

+0

Không chắc chắn lý do tại sao bạn cần chuyển đổi phối cảnh. Tại sao không chỉ cắt thành dòng, như một hình chữ nhật với chiều rộng 5, 4 lần. – user1055568

Các vấn đề liên quan