- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试在 iPhone 中实现一些图像滤镜,例如宝丽来。我搜索了如何过滤现有的 UIImage 将其转换为 polaroid风格并遇到this堆栈溢出链接。以那里的答案为起点,我循环遍历图像的每个像素,获取 RGB 值,并将它们转换为 HSV,到目前为止我已经成功了。这就是我所做的(任何人都可以自由指出任何错误..)
double minRGB(double r, double g, double b){
if (r < g){
if (r < b){
return r;
}else {
return b;
}
}else {
if (g < b){
return g;
}else{
return b;
}
}
}
double maxRGB(double r, double g, double b){
if (r > g){
if (r > b){
return r;
}else {
return b;
}
}else {
if (g > b){
return g;
}else {
return b;
}
}
}
void rgbToHsv(double redIn,double greenIn,double blueIn,double *hue,double *saturation,double* value){
double min,max,delta;
min = minRGB(redIn,greenIn,blueIn);
max = maxRGB(redIn,greenIn,blueIn);
*value = max;
delta = max - min;
if (max != 0) {
*saturation = delta/max;
}else {
*saturation = 0;
*hue = -1.0;
return ;
}
if (redIn == max) {
*hue = (greenIn - blueIn)/delta;
}else if (greenIn == max) {
*hue = 2 + (blueIn - redIn)/delta;
}else {
*hue = 4 + (redIn - greenIn)/delta;
}
*hue *= 60.0;
if (*hue < 0) {
*hue += 360.0;
}
}
void hsvToRgb(double h,double s, double v, double *r,double *g, double *b){
int i;
float f, p, q, t;
if( s == 0 ) {
// achromatic (grey)
*r = *g = *b = v;
return;
}
h /= 60; // sector 0 to 5
i = floor( h );
f = h - i; // factorial part of h
p = v * ( 1 - s );
q = v * ( 1 - s * f );
t = v * ( 1 - s * ( 1 - f ) );
switch( i ) {
case 0:
*r = v;
*g = t;
*b = p;
break;
case 1:
*r = q;
*g = v;
*b = p;
break;
case 2:
*r = p;
*g = v;
*b = t;
break;
case 3:
*r = p;
*g = q;
*b = v;
break;
case 4:
*r = t;
*g = p;
*b = v;
break;
default: // case 5:
*r = v;
*g = p;
*b = q;
break;
}
}
-(void)makeImagePolaroid:(UIImage*)myImage{
CGImageRef originalImage = [myImage CGImage];
CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();
CGContextRef bitmapContext = CGBitmapContextCreate(NULL,CGImageGetWidth(originalImage),CGImageGetHeight(originalImage),8,CGImageGetWidth(originalImage)*4,colorSpace,kCGImageAlphaPremultipliedLast);
CGColorSpaceRelease(colorSpace);
CGContextDrawImage(bitmapContext, CGRectMake(0, 0, CGBitmapContextGetWidth(bitmapContext), CGBitmapContextGetHeight(bitmapContext)), originalImage);
UInt8 *data = CGBitmapContextGetData(bitmapContext);
int numComponents = 4;
int bytesInContext = CGBitmapContextGetHeight(bitmapContext) * CGBitmapContextGetBytesPerRow(bitmapContext);
double redIn, greenIn, blueIn,alphaIn;
double hue,saturation,value;
for (int i = 0; i < bytesInContext; i += numComponents) {
redIn = (double)data[i]/255.0;
greenIn = (double)data[i+1]/255.0;
blueIn = (double)data[i+2]/255.0;
alphaIn = (double)data[i+3]/255.0;
rgbToHsv(redIn,greenIn,blueIn,&hue,&saturation,&value);
hue = hue * 0.7;
if (hue > 360) {
hue = 360;
}
saturation = saturation *1.3;
if (saturation > 1.0) {
saturation = 1.0;
}
value = value * 0.8;
if (value > 1.0) {
value = 1.0;
}
hsvToRgb(hue,saturation,value,&redIn,&greenIn,&blueIn);
data[i] = redIn * 255.0;
data[i+1] = greenIn * 255.0;
data[i+2] = blueIn * 255.0;
}
CGImageRef outImage = CGBitmapContextCreateImage(bitmapContext);
myImage = [UIImage imageWithCGImage:outImage];
CGImageRelease(outImage);
return myImage;
}
现在我对图像处理的想法非常幼稚(甚至不是业余的)。我读过this并尝试调整饱和度和色调,看看是否可以获得宝丽来效果。.我想我错过了一些东西,因为我得到了除了宝丽来之外的地球上的所有效果(说我没有得到任何东西)..
提前致谢..
最佳答案
这可能会有所帮助,因为 Camera+ 从 Photoshop 中获取滤镜并将其复制到 iOS。
关于iphone - UIImage 的宝丽来滤镜,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5590216/
我正在使用 Inkscape 0.91。我想使用 Filters -> ABC 的 Noise Transparency 效果,但此较高版本的 Inkscape 中不存在该效果。我在网上看到,在更高的
SVG 滤镜 可以给 SVG 图形的添加特殊效果 SVG 滤镜 SVG有很多的滤镜,但本教程只会展示其中的两三种,其他的需要你可以依葫芦画瓢的使用 我们只需要记住 SVG 能提供什么样的滤镜,然
前言 本文主要给大家介绍了关于ios图片压缩、滤镜、剪切及渲染的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧 主要内容: 1、图片基础知识的介绍 2、图片压缩
我想使用 VP8 在我的应用程序中编码视频。我在我的应用程序中使用 RGB24 格式,但 VP8 DirectShow 过滤器只接受 YUV 格式 (http://www.webmproject.or
我想要一个带有白色外发光的黑色文本,以便在彩色 map 上可读。这就是我以前所做的: Harald's Repose Harald's Repose 我想避免重复文本元素,因
如果我使用 camanJS 在图像上应用滤镜,一切都很好,但是当我单击第二个滤镜时,它需要返回到原始图像并将其应用到该图像上,但目前它将第二个滤镜放在仍具有第一个滤镜的图像。 这是我的 html 部分
我有 3 个 System.Drawing.Bitmap 对象。 RGB 前景、RGB 背景和每像素蒙版图像一个字节,其中 0 表示采用背景像素,1 表示采用前景像素。这三个都是相同的维度。 我选择使
谁能确认 Android BlurMaskFilter方法基于高斯模糊(而不是平均模糊)?我真的很惊讶这里的文档并不明确。 最佳答案 引用代码here ,我可以假设它是基于高斯模糊方法。 我完全同意您
本质上,我正在尝试使用 SVG 和 CSS ( like this ) 创建一个渐变 alpha 蒙版,因为 mask 属性是 no longer on the standards跟踪我正在探索 fi
我正在使用CSSGram在我的网站上使图像具有类似 Instagram 的滤镜。下面是向图像添加滤镜的方法: 如何将这种效果添加到网页中的所有图像,而不是使用 在每个图像之前,以及许多图像
我有一组带有背景图像的元素,这些元素上有一个 SVG 滤镜,使背景图像变灰。我需要它,以便当您将鼠标悬停在该元素上时,该 SVG 滤镜会淡化为透明,因此原始彩色图像会在没有滤镜的情况下显示。不幸的是,
如何访问 OpenCV 扩展图像处理模块?我特别需要一个过滤器:fastGlobalSmootherFilter。 我已将 OpenCV 3.2.0 合并到我的 C++ 项目中。我正在寻找这种方法:
看看下面的 CodePen 演示:http://codepen.io/anon/pen/vLPGpZ 这是我的代码: body { position: absolute; top:
请建议我如何在 Android 相机的运行时应用照片效果/滤镜?无需使用 JNI 、 OpenGl 和 open CV 。我只需要通过 Java 代码应用效果。 最佳答案 步骤 1. 将帧从 NV21
我正在尝试沿着特定路径在 Opengl 中渲染点 Sprite 。我将 Sprite 定义为 2D 纹理,并将其设置为使用 GL_NEAREST 作为 mag/min 过滤器。我还定义了一个包含一些
我想实现这样的目标: 此图片来自this应用程序。 我的问题是,我应该依赖像 this 这样的东西吗? ,自己做,或者即使有其他一些我不知道的第三个库,也可以推荐。 我试图获得更多的意见,而不是实际的
我使用 Pixastic 来更改 Canvas 上图像的亮度和对比度等简单效果。 但是,我一直没能找到将这些效果一起应用的方法。例如。应用亮度然后在这个已经变亮的图像上应用对比度,而不是原始图像。 使
我在使用 Core image 时遇到了问题。我正在做的是从 UIImageView 获取图像,然后使用我在教程中找到的一些代码(我是核心图像的新手)但是我想在我尝试时将棕褐色图像放回同一个 UIIm
我这里有一张图片: 我想在网站 theverge.com 中复制 css 样式(见下图) 我将在我的博客(主页)中使用它,因为我正在尝试复制 theverge.com 网站的内容。这就像在半透明渐变和
我想使用聚光灯效果,但它似乎只在 Chrome 中有效,在 Firefox 中看起来“刚刚好”,但在 Safari 中无法定位 (x,y,z)。 (其他浏览器未测试) 我尝试了不同的滤镜和原始单位,虽
我是一名优秀的程序员,十分优秀!