Как я могу взять UIImage и дать ему черную границу?

Спасибо nvk, это наконец работало на меня также, но существует выгода:

В dconf-редакторе существует текст справки, который читает что-то как, 'если никакая конфигурация для https будет дан, прокси-сервер, настроенный для , то http будет использоваться для https также'. Это не верно, по крайней мере, для Ubuntu 12.04 . Я должен был добавить сервер для всех протоколов, даже будучи тем же для http, ftp и https. После того, как я сделал это, и после того, как выходить из системы и в снова, прокси (включая исключения) вступили в силу для всех приложений.

однако, я думаю 'нормальные' параметры сети, GUI мог быть сделан лучше добавлением дополнительного поля ввода для исключений прокси в части настроек прокси. Я надеюсь видеть это в будущем обновлении Ubuntu.

126
задан Undo 2 June 2013 в 00:42
поделиться

4 ответа

Вы можете манипулировать изображением сам по себе, но гораздо лучше просто добавить UIView, который содержит UIImageView, и изменить фон на черный. Затем установите размер этого представления контейнера немного больше, чем размер UIImageView.

2
ответ дан 24 November 2019 в 00:49
поделиться

Вы не можете добавить границу, но это будет работать для того же эффекта. Вы также можете превратить UIView под названием blackBG в этом примере в UIImageView с изображением границы и пустой серединой, и тогда у вас будет пользовательская граница изображения вместо только черного.

UIView *blackBG = [[UIView alloc] initWithFrame:CGRectMake(0,0,100,100)];

blackBG.backgroundColor = [UIColor blackColor];

UIImageView *myPicture = [[UIImageView alloc] initWithImage:
                          [UIImage imageNamed: @"myPicture.jpg"]];

int borderWidth = 10;

myPicture.frame = CGRectMake(borderWidth,
                             borderWidth,
                             blackBG.frame.size.width-borderWidth*2,
                             blackBG.frame.size.height-borderWidth*2)];

[blackBG addSubview: myPicture];
8
ответ дан 24 November 2019 в 00:49
поделиться

Вы можете сделать это, создав новое изображение (также ответ на него вы найдете в другой публикации этого вопроса):

- (UIImage*)imageWithBorderFromImage:(UIImage*)source;
{
  CGSize size = [source size];
  UIGraphicsBeginImageContext(size);
  CGRect rect = CGRectMake(0, 0, size.width, size.height);
  [source drawInRect:rect blendMode:kCGBlendModeNormal alpha:1.0];

  CGContextRef context = UIGraphicsGetCurrentContext();
  CGContextSetRGBStrokeColor(context, 1.0, 0.5, 1.0, 1.0); 
  CGContextStrokeRect(context, rect);
  UIImage *testImg =  UIGraphicsGetImageFromCurrentImageContext();
  UIGraphicsEndImageContext();
  return testImg;
}  

Этот код создаст розовую рамку вокруг изображения. Однако, если вы собираетесь просто отобразить границу, используйте слой UIImageView и установите его границу.

67
ответ дан 24 November 2019 в 00:49
поделиться

С ОС > 3.0 вы можете сделать следующее:

//you need this import
#import <QuartzCore/QuartzCore.h>

[imageView.layer setBorderColor: [[UIColor blackColor] CGColor]];
[imageView.layer setBorderWidth: 2.0];
241
ответ дан 24 November 2019 в 00:49
поделиться