使用《start图片编辑器》进行图文混排实例

Posted ksstudio

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用《start图片编辑器》进行图文混排实例相关的知识,希望对你有一定的参考价值。

《start图片编辑器》已发布了!在微软商店下载:

https://www.microsoft.com/store/productId/9NMTP62QL5L2

端午节快到了,提前祝大家端午节快乐。突然想制作一张端午节的海报,如何制作呢?效果如下图:

今天来实例展示一下《start图片编辑器》如何轻松的进行图文混排。

1.首先,打开《start图片编辑器》,点击新建图片

 2.设置好尺寸后,点击确定(本文设置尺寸600*400)

 3.点击视图-图像,点击左上角的按钮,选择文件,选择一张素材文件

 4.点击缩放至画布大小,让素材铺满画布(如果点击一次未铺满,则多点几下)

 5.同理加入另一张图片素材,拖动四角按钮改变大小

 6。对需要调整的图片素材进行栅格化处理

 7.工具-选区-套索,描出需要扣出的部位,或者使用魔棒,选区相应部位

 8,点击复制到新图层,扣出新图层,删除旧图层

 9,对新图层微调后,调整位置,使用橡皮擦擦除多余部位

 10.或者使用工具-选区-形状,选取出一个标准的圆形

 11.工具-图像属性,进行属性调节

 12.这里通过拖动透明度,改变透明度

 13.工具-橡皮擦,擦除多余部位

 14.视图-文字,添加文本框并输入文字

 15.对文本进行栅格化

 

16.工具-效果-阴影,并调节参数

 17.最终效果

 

ios开发,关于图文混排

我最近要做一个图文混排的项目,一个CTLine中文字加图片的长度大于显示屏的最大程度,我想把这行的图片另起一行显示,如何操作?

如图,if代码块中改怎么写?
非常紧急,在线等。。。。。

参考技术A 图文混排

CTFrameRef textFrame // coreText 的 frame

CTLineRef line // coreText 的 line

CTRunRef run // line 中的部分文字

相关方法:

CFArrayRef CTFrameGetLines (CTFrameRef frame ) //获取包含CTLineRef的数组

void CTFrameGetLineOrigins(
CTFrameRef frame,
CFRange range,
CGPoint origins[] ) //获取所有CTLineRef的原点

CFRange CTLineGetStringRange (CTLineRef line ) //获取line中文字在整段文字中的Range

CFArrayRef CTLineGetGlyphRuns (CTLineRef line ) //获取line中包含所有run的数组

CFRange CTRunGetStringRange (CTRunRef run ) //获取run在整段文字中的Range

CFIndex CTLineGetStringIndexForPosition(
CTLineRef line,
CGPoint position ) //获取点击处position文字在整段文字中的index

CGFloat CTLineGetOffsetForStringIndex(
CTLineRef line,
CFIndex charIndex,
CGFloat* secondaryOffset ) //获取整段文字中charIndex位置的字符相对line的原点的x值

主要步骤:

1)计算并存储文字中保含的所有表情文字及其Range

2)替换表情文字为指定宽度的NSAttributedString

CTRunDelegateCallbacks callbacks;
callbacks.version = kCTRunDelegateVersion1;
callbacks.getAscent = ascentCallback;
callbacks.getDescent = descentCallback;
callbacks.getWidth = widthCallback;
callbacks.dealloc = deallocCallback;

CTRunDelegateRef runDelegate = CTRunDelegateCreate(&callbacks, NULL);
NSDictionary *attrDictionaryDelegate = [NSDictionary dictionaryWithObjectsAndKeys:
(id)runDelegate, (NSString*)kCTRunDelegateAttributeName,
[UIColor clearColor].CGColor,(NSString*)kCTForegroundColorAttributeName,
nil];

NSAttributedString *faceAttributedString = [[NSAttributedString alloc] initWithString:@"*" attributes:attrDictionaryDelegate];

[weiBoText replaceCharactersInRange:faceRange withAttributedString:faceAttributedString];
[faceAttributedString release];

3) 根据保存的表情文字的Range计算表情图片的Frame

textFrame 通过CTFrameGetLines 获取所有line的数组 lineArray

遍历lineArray中的line通过CTLineGetGlyphRuns获取line中包含run的数组 runArray

遍历runArray中的run 通过CTRunGetStringRange获取run的Range

判断表情文字的location是否在run的Range

如果在 通过CTLineGetOffsetForStringIndex获取x的值 y的值为line原点的值
仅供参考追问

NICE啊,求求你把源码发我吧,我好好研究下,这点小分不成敬意,待会儿奉上。。。。同时,我还会用我有限的资源不遗余力的为您的课程做宣传。。。。

以上是关于使用《start图片编辑器》进行图文混排实例的主要内容,如果未能解决你的问题,请参考以下文章

ios开发,关于图文混排

ios开发,关于图文混排

Button实现图文混排

图文混排-------专辑详情

nodejs路由控制图文混排

把图片添加到文字中实现图文混排