#getfractals
Explore tagged Tumblr posts
Photo
Tumblr media
“You may encounter many defeats, but you must not be defeated. In fact, it may be necessary to encounter the defeats, so you can know who you are, what you can rise from, how you can still come out of it.” ― Maya Angelou . . . . . . . #showofforce #femaleveteran #marlakeownphotography #doubleexposure #portraitoftheday #postmoreportraits #makeportraits #pursuitofportraits #quietthechaos #postthepeople #discoverportrait #portrait_perfection #havecamerawillshoot #shotwithlove #doubleexposurephotography #instablackandwhite #bnw_captures #bnwportrait #prismphotography #getfractals #mayaangelou (at Veterans of Foreign Wars VFW Post 1) https://www.instagram.com/camrafem/p/BwgDBpolwpR/?utm_source=ig_tumblr_share&igshid=2rx52x7hm3sz
0 notes
miluta7 · 7 years ago
Photo
Tumblr media
#creativephotography #concertphotography #musicphotography #gigphotography #prismphotography #fractalfilters #getfractals #juliafilter #bw_shotz #noiretblanc #blackandwhite #andries #livemusicphotography #julia (la Clubul Țăranului)
0 notes
mobgrafica-blog · 7 years ago
Photo
Tumblr media
S/T | MOB | SP - 2018 . . . . . #mobgrafica #mobgraphia #vscocam #VSCO #Minimalism #minimalart #getfractals #interiordesign #soft #instagood #instagram #instagramers #womanphotographer #motoz2play #brazil #design #RGB #adobecollor # https://www.instagram.com/p/BpZV6AjFuB2/?utm_source=ig_tumblr_share&igshid=lpqjxtmd3zn7
0 notes
shoottofill · 7 years ago
Video
DSC_7329 by mike machian Via Flickr: Net Playing a show with Closeness
0 notes
matthewphotography-blog · 8 years ago
Photo
Tumblr media
Sneak peak from a photo shoot for @lloyds.hairy last week. @daniellelloydshair and @aislinglloydshair 's fantasy entries in this year's IHF championships .... both head pieces made entirely out of hair !! MUA @jesst_x and the very talented models @aoifemichelle and Lydia #lloyds #hairgoals #lloydshair #hairstylist  #fantasy #fantasyhair #avantgarde #photoshoot #photography #fashionphotography #nikon @getfractals #getfractals #prismphotography
0 notes
torridboudoir · 6 years ago
Photo
Tumblr media
Fun with @getfractals 🖤 HMUA: @unleashed_by_lauren (at Torrid Boudoir) https://www.instagram.com/p/B5SmibOlpXM/?igshid=f50194saflpe
1 note · View note
johnchamediagroup · 7 years ago
Video
instagram
You know wassup! Some #BehindTheScenes today with @BruFave performing some Donell Jones with some @GetFractals filters! #JohnChaMediaGroup #VideoProduction #Dubai #UAE #MusicVideo #R&B #Music #SlowJams #BTS #Lumix #GH5S #FractalFilters #Cinematography #Videography #Rotolights (at Dubai, United Arab Emirates) https://www.instagram.com/p/BmLqrQIh_IG/?utm_source=ig_tumblr_share&igshid=127hhk3919z4p
4 notes · View notes
danielburtonphotography · 4 years ago
Photo
Tumblr media
Sneak peek!! ⠀ ⠀ Huge congratulations to Bonnie and Tony who after moving dates like many due to covid, we're finally married at The Westmill!! ⠀ ⠀ So these pics just about sum up the wedding reception! When Newcastle meets Chadd = one big party! Bride, 'avin it on the dancefloor, groom, hard-core! Boom! 🤣⠀ ⠀ When you turn up for photo duty and there's a huge booze bath full of beer, you know it's going to be a good one!! ⠀⠀ I took this using an @getfractals crystal and some on camera flash. ⠀ Superstar Wedding suppliers!! ⠀ ⠀ Photo - @danielburtonphoto ⠀ Venue @thewestmill⠀ Bride @bonst90 ⠀ Groom @tony_michael4⠀ Dress @lorigbridal⠀ Flowers @jfowler_x ⠀ Makeup @bytonibeauty ⠀ Hair @charlotte142615 ⠀ Suits @mossbros ⠀ Rings @beaverbrooksthejeweller⠀ Cake @_bakedbyholly ⠀ Cakes @rubylooscakes⠀ Venue stylist @inspirehire⠀ DJ @weddings4derby⠀ Booze bath @boozebathandbeyond⠀ ⠀ ⠀ #weddingphotographeruk #weddingphotography #derbyweddingphotographer #derbyphotographer #castledoningtonfamilyphotographer #castledoningtonphotographer #castledonington #derby #nottinghamweddingphotographer #leicesterweddingphotographer #burtonweddingphotographer #longeatonphotographer #gettingmarried #weddingplanning #weddingideas #weddingdress #derbywedding #derbyweddings #weddingmoments #eastmidlandsweddingphotographer #danielburtonphotography #relaxedphotographer #westmill #weddingvenueuk #theysaidyes #party #canonr6 #derbyweddingvenue #getfractals⠀ #thewestmill (at The West Mill Exclusive Use Wedding Venue) https://www.instagram.com/p/CTApQkRCQL5/?utm_medium=tumblr
0 notes
Photo
Tumblr media
“Transformation is not a kind place, it’s chaotic and a source of inner conflict because it is not a ‘safe’ place, but it is a place of growth; a place of rebirth where you can restart and realign with who you are. We can learn so much from the caterpillar that grows its butterfly wings in the ache and darkness of its own cocoon; and is reborn, beautiful and free, with wings to fly. This is the true meaning and profoundness of transformation; it is where the truest parts of you can emerge and you transition into the most intuitive and vibrant canvas of yourself.”  ― Christine Evangelou . . . . . . #showofforce #femaleveteran #marlakeownphotography #doubleexposure #portraitoftheday #postmoreportraits #makeportraits #pursuitofportraits #quietthechaos #postthepeople #discoverportrait #portrait_perfection #havecamerawillshoot #shotwithlove #doubleexposurephotography #instablackandwhite #bnw_captures #bnwportrait #prismphotography #getfractals #christineevangelou (at The Studio Loft at the Ellie) https://www.instagram.com/camrafem/p/BwWFDvsFPeb/?utm_source=ig_tumblr_share&igshid=e8592dmkgs6s
0 notes
miluta7 · 8 years ago
Photo
Tumblr media
#creativephotography #prismphotography #fractalfilters #getfractals #fujixpro2 #BeyondTheEye #fuji16mm #guaranaproduction #iankoo (la Piața Constituției)
0 notes
jacob-cs · 5 years ago
Text
android jetpack data binding
https://developer.android.com/topic/libraries/data-binding android official docs
.
.
.
https://youtu.be/v4XO_y3RErI
40분 분량 java coding with mitch
Tumblr media
product는 xml안에서 사용할 변수 이름이고 보통 obj, data class obj를 담게 된다. type은 obj의 class
.
.
Tumblr media
.
.
Tumblr media
.
.
Tumblr media
일반 함수를 사용할수 있다. (정확히 어떤 함수가 일반 함수에 해당하는지는 확인요망)
.
.
Tumblr media
���부의 class를 xml내로 가져와 사용하고자 하는 경우
.
.
Tumblr media
이 강의에서는 StringUtil이라는 helper class를 xml에 가져와 사용하는 것을 가정한다.
.
.
Tumblr media
 xml안 변수로 사용하게될 class Product 의 내부함수를 xml에서 사용하는 것을 보여준다.
.
.
Tumblr media
xml안 변수로 사용하게될 class Product 의 내부함수를 xml에서 사용하는 것을 보여준다.
.
.
Tumblr media
xml내로 android view class를 import 해서 가져와 view의 속성을 변경하는 것을 보여준다.
.
.
Tumblr media
클릭 이벤트 처리를 위한 interface
.
.
Tumblr media
클릭이벤트를 이 강의에서는 activity가 처리한다고 가정한다.
.
.
Tumblr media
클릭이벤트를 위한 interface를 implement한다.
.
.
Tumblr media
클릭이벤트를 처리하는 class를 변수로 가져온다.
.
.
Tumblr media
.
.
Tumblr media
클릭이벤트 처리를 외부로 보낸다.
.
.
Tumblr media
binding adapter를 통해 view를 외부로 보내 추가 처리를 하는 것을 보여준다. 이강의에서는 glide를 사용하는 것을 보여준다.
.
.
Tumblr media
app:바인딩어댑터이름   즉 @BindingAdapter() 안에 들어간 이름
.
.
.
.
========================================================================================================================
https://medium.com/androiddevelopers/no-more-findviewbyid-457457644885
android {    …    dataBinding.enabled = true }
<layout xmlns:android="http://schemas.android.com/apk/res/android"        xmlns:tools="http://schemas.android.com/tools">    <RelativeLayout            android:layout_width="match_parent"     ��      android:layout_height="match_parent"            android:paddingLeft="@dimen/activity_horizontal_margin"            android:paddingRight="@dimen/activity_horizontal_margin"            android:paddingTop="@dimen/activity_vertical_margin"            android:paddingBottom="@dimen/activity_vertical_margin"            tools:context=".MainActivity">        <TextView                android:id="@+id/hello"                android:layout_width="wrap_content"                android:layout_height="wrap_content"/>    </RelativeLayout> </layout>
HelloWorldBinding binding =    DataBindingUtil.setContentView(this, R.layout.hello_world); binding.hello.setText("Hello World"); // you should use resources!
.
.
https://medium.com/androiddevelopers/android-data-binding-that-include-thing-1c8791dd6038
hello_world.xml<layout xmlns:android="http://schemas.android.com/apk/res/android">    <LinearLayout            android:layout_width="match_parent"            android:layout_height="match_parent"            android:orientation="vertical">        <TextView                android:id="@+id/hello"                android:layout_width="wrap_content"                android:layout_height="wrap_content"/>        <include                android:id="@+id/included"                layout="@layout/included_layout"/>    </LinearLayout> </layout>
included_layout.xml<?xml version="1.0" encoding="utf-8"?> <layout xmlns:android="http://schemas.android.com/apk/res/android">    <TextView            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:id="@+id/world"/> </layout>
HelloWorldBinding binding =    HelloWorldBinding.inflate(getLayoutInflater()); binding.hello.setText(“Hello”); binding.included.world.setText(“World”);
.
.
https://medium.com/google-developers/android-data-binding-adding-some-variability-1fe001b3abcc
<?xml version="1.0" encoding="utf-8"?> <layout xmlns:android="http://schemas.android.com/apk/res/android">    <data>        <variable            name="user"            type="com.example.myapp.model.User"/>    </data>    <LinearLayout            android:orientation="vertical"            android:layout_width="match_parent"            android:layout_height="match_parent">        <ImageView                android:src="@{user.image}"                android:layout_width="wrap_content"                android:layout_height="wrap_content"/>        <TextView                android:text="@{user.firstName}"                android:layout_width="wrap_content"                android:layout_height="wrap_content"/>        <TextView                android:text="@{user.lastName}"                android:layout_width="wrap_content"                android:layout_height="wrap_content"/>    </LinearLayout> </layout>
You can see in the layout above that the Views no longer have IDs. (above)
private void setUser(User user, ViewGroup root) {    UserInfoBinding binding =        UserInfoBinding.inflate(getLayoutInflater(), root, true);    binding.setUser(user); }
-------------------------------------------------------------------------------------------
user_name.xml <?xml version="1.0" encoding="utf-8"?> <layout xmlns:android="http://schemas.android.com/apk/res/android">    <data>        <variable                name="user"                type="com.example.myapp.model.User"/>    </data>    <LinearLayout            android:layout_width="match_parent"            android:layout_height="match_parent"            android:orientation="horizontal">        <TextView                android:layout_width="wrap_content"                android:layout_height="wrap_content"                android:text="@{user.firstName}"/>        <TextView                android:layout_width="wrap_content"                android:layout_height="wrap_content"                android:text="@{user.lastName}"/>    </LinearLayout> </layout>
<?xml version="1.0" encoding="utf-8"?> <layout xmlns:android="http://schemas.android.com/apk/res/android"        xmlns:app="http://schemas.android.com/apk/res-auto">    <data>        <variable                name="user"                type="com.example.myapp.model.User"/>    </data>    <LinearLayout            android:layout_width="match_parent"            android:layout_height="match_parent"            android:orientation="vertical">        <ImageView                android:layout_width="wrap_content"                android:layout_height="wrap_content"                android:src="@{user.image}"/>        <include                layout="@layout/user_name"                app:user="@{user}"/>    </LinearLayout> </layout>
.
.
https://medium.com/androiddevelopers/android-data-binding-express-yourself-c931d1f90dfe
The expression parser automatically tries to find the Java Bean accessor name (getXxx() or isXxx()) for your property. The same expression will work fine when your class has accessor methods. (기본적으로 xml에 @{a.bbb}가 있다고 한다면 parser가 알아서 a 클래스에서 getbbb()를 찾고 없다면 bbb()를 사용한다는 이야기 이다.)
If it can’t find a method named like getXxx(), it will also look for a method named xxx(), so you can use user.hasFriend to access method hasFriend().
Android Data Binding expression syntax also supports array access using brackets, just like Java:
android:text="@{user.friends[0].firstName}"
It also allows almost all java language expressions, including method calls, ternary operators, and math operations.
there is a null-coalescing operator ?? to shorten the simple ternary expressions:(즉 ?? 사용가능하다는 이야기)
android:text=”@{user.firstName ?? user.userName}”
which is essentially the same as:
android:text=”@{user.firstName != null ? user.firstName : user.userName}”
One really cool thing you can do with binding expressions is use resources:
android:padding=”@{@dim/textPadding + @dim/headerPadding}
You can also use string, quantity, and fraction formatting following the syntax from Resources methods getString, getQuantityString, and getFraction. You just pass the parameters as arguments to the resource:
android:text=”@{@string/nameFormat(user.firstName, user.lastName)}”
One very convenient thing is that data binding expressions always check for null values during evaluation. That means that if you have an expression like:
android:text=”@{user.firstName ?? user.userName}”
If user is null, user.firstName and user.userName will evaluate to null and the text will be set to null. No NullPointerException.
This doesn’t mean that it is impossible to get a NullPointerException. If, for example, you have an expression:
android:text=”@{com.example.StringUtils.capitalize(user.firstName)}”
And your StringUtils had:
public static String capitalize(String str) {    return Character.toUpperCase(str.charAt(0)) + str.substring(1); }
You’ll definitely see a NullPointerException when a null is passed to capitalize.
Importing
In the example above, the expression to capitalize the name was very long. What we really want is to be able to import types so that they can be used as a shortened expression. You can do that by importing them in the data section:
<data>    <variable        name="user"        type="com.example.myapp.model.User"/>    <import        type="com.example.StringUtils"/> </data>
Now our expression can be simplified to:
android:text=”@{StringUtils.capitalize(user.firstName)}”
(본래는 android:text=”@{com.example.StringUtils.capitalize(user.firstName)}” 이렇게 쓸것을 줄인결과)
Expressions are pretty much Java syntax with the few exceptions mentioned above. If you think it will work, it probably will, so just give it a go.
.
.
https://medium.com/androiddevelopers/android-data-binding-the-big-event-2697089dd0d7
data binding에서 listener를 view에 덧붙이는 방법은 아래와 같이3가지가 있다. 
1. Listener Objects
<View android:onClickListener="@{callbacks.clickListener}" .../>
간단하게 줄여서 아래와 같이 할수도 있다.
<View android:onClick="@{listeners.clickListener}" .../>
public class Callbacks {    public View.OnClickListener clickListener; }
2. Method References
<EditText    android:afterTextChanged="@{callbacks::nameChanged}" .../>
public class Callbacks {    public void nameChanged(Editable editable) {        //...    } }
아래와 같이 논리구조를 추가해서 상황에 따라 다른 리스너를 이용할수도 있다.
<EditText android:afterTextChanged=    "@{user.hasName?callbacks::nameChanged:callbacks::idChanged}"    .../>
3. Lambda Expressions
https://developer.android.com/reference/android/text/TextWatcher#afterTextChanged(android.text.Editable)
본래 afterTextChanged는 Editable 를 parameter로 받는다. 아래서 e는 Editable이다.
<EditText android:afterTextChanged="@{(e)->callbacks.textChanged(user, e)}" ... />
public class Callbacks { public void textChanged(User user, Editable editable) { if (user.hasName()) { //... } else { //... } } }
.
.
https://medium.com/androiddevelopers/android-data-binding-lets-flip-this-thing-dc17792d6c24
@={}
<EditText    android:layout_width="wrap_content"    android:layout_height="wrap_content"    android:text="@={user.firstName}"/>
아래에서는 xml에 있는 다른 view의 id를 이용 접근하는 것을 보여주고 있다.
<CheckBox    android:id="@+id/showName"    android:layout_width="wrap_content"    android:layout_height="wrap_content"/> <TextView    android:text="@{user.firstName}"    android:layout_width="wrap_content"    android:layout_height="wrap_content"    android:visibility="@{showName.checked ? View.VISIBLE : View.GONE}"    />
<CheckBox    android:id="@+id/showName"    android:focusableInTouchMode="@{model.allowFocusInTouchMode}"    android:layout_width="wrap_content"    android:layout_height="wrap_content"/> <TextView    android:text="@{user.firstName}"    android:layout_width="wrap_content"    android:layout_height="wrap_content"    android:focusableInTouchMode="@{showName.focusableInTouchMode}"    />
<EditText    android:layout_width="wrap_content"    android:layout_height="wrap_content"    android:id="@+id/firstName"    android:text="@={user.firstName}" /> <CheckBox    android:layout_width="wrap_content"    android:layout_height="wrap_content"    android:onCheckedChanged="@{()->handler.checked(firstName)}" />
.
.
.
.
======================================================================================================================
codelab 예시에서 가져옴
.
https://codelabs.developers.google.com/codelabs/kotlin-android-training-data-binding-basics/index.html?index=..%2F..android-kotlin-fundamentals#3
ViewDataBinding.invalidateAll()
void invalidateAll ()
Invalidates all binding expressions and requests a new rebind to refresh UI.
binding.apply {   myName?.nickname = nicknameEdit.text.toString()   invalidateAll()   ... }
.
.
https://codelabs.developers.google.com/codelabs/kotlin-android-training-create-and-add-fragment/index.html?index=..%2F..android-kotlin-fundamentals#3
fragment에서 data binding을 사용하는 경우
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?,                         savedInstanceState: Bundle?): View? {   val binding = DataBindingUtil.inflate<FragmentTitleBinding>(inflater,           R.layout.fragment_title,container,false)   return binding.root   }
.
.
https://codelabs.developers.google.com/codelabs/kotlin-android-training-interacting-with-items/index.html?index=..%2F..android-kotlin-fundamentals#3
data binding을 사용한 recyclerview에서 클릭 처리
package com.example.android.trackmysleepquality.sleeptracker import android.view.LayoutInflater import android.view.ViewGroup import androidx.recyclerview.widget.DiffUtil import androidx.recyclerview.widget.ListAdapter import androidx.recyclerview.widget.RecyclerView import com.example.android.trackmysleepquality.database.SleepNight import com.example.android.trackmysleepquality.databinding.ListItemSleepNightBinding class SleepNightAdapter(val clickListener: SleepNightListener) : ListAdapter<SleepNight, SleepNightAdapter.ViewHolder>(SleepNightDiffCallback()) {    override fun onBindViewHolder(holder: ViewHolder, position: Int) {        holder.bind(getItem(position)!!, clickListener)    }    override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {        return ViewHolder.from(parent)    }    class ViewHolder private constructor(val binding: ListItemSleepNightBinding) : RecyclerView.ViewHolder(binding.root){        fun bind(item: SleepNight, clickListener: SleepNightListener) {            binding.sleep = item            binding.clickListener = clickListener            binding.executePendingBindings()        }        companion object {            fun from(parent: ViewGroup): ViewHolder {                val layoutInflater = LayoutInflater.from(parent.context)                val binding = ListItemSleepNightBinding.inflate(layoutInflater, parent, false)                return ViewHolder(binding)            }        }    } } class SleepNightDiffCallback : DiffUtil.ItemCallback<SleepNight>() {    override fun areItemsTheSame(oldItem: SleepNight, newItem: SleepNight): Boolean {        return oldItem.nightId == newItem.nightId    }    override fun areContentsTheSame(oldItem: SleepNight, newItem: SleepNight): Boolean {        return oldItem == newItem    } } class SleepNightListener(val clickListener: (sleepId: Long) -> Unit) {    fun onClick(night: SleepNight) = clickListener(night.nightId) }
.
.
.
.
data binding 을 fragment에서 사용하는 경우
https://stackoverflow.com/a/34719627/3151712
The data binding implementation must be in the onCreateView method of the fragment
public View onCreateView(LayoutInflater inflater,                         @Nullable ViewGroup container,                         @Nullable Bundle savedInstanceState) {    MartianDataBinding binding = DataBindingUtil.inflate(            inflater, R.layout.martian_data, container, false);    View view = binding.getRoot();    //here data must be an instance of the class MarsDataProvider    binding.setMarsdata(data);    return view; }
.
.
.
.
two way data binding 
custom view , custom attributes
30분 분량
https://youtu.be/CoOcEv6sFkI
.
.
google official doc for two way data binding
https://developer.android.com/topic/libraries/data-binding/two-way
.
.
.
.
two way data binding
https://youtu.be/T-nQP9fidKU
간단하고 좋지만 에러 발생 , 30분량
Bindable must be on a member in an Observable class. MainViewModel is not Observable
0 notes
curvysta · 6 years ago
Photo
Tumblr media
@getfractals @photoplusofficial facing the sunset on the last hole of the course. A beautiful ending to an amazing day. #thereisagod #fractals #photoplusexpo (at Hobbits Glen Golf Course) https://www.instagram.com/p/B4LXQOiFDzM/?igshid=sv1joyk1fq9f
0 notes
threar · 6 years ago
Photo
Tumblr media
027/365 With Your Phone: Took a photo of the gear I used to take a photo. Very #meta. . . #analog #captureyour365 #coloradotography #CY365 #everdayphotography #film #gear #gearporn #getfractals #igdaily #instadaily #instagood #Photo365 #picoftheday #Polaroid #potd #prism https://www.instagram.com/p/BtKMv-BlBr8/
0 notes
mobgrafica-blog · 7 years ago
Photo
Tumblr media
Redoma | MOB | PA - 2018 . . . . . #mobgrafica #mobgraphia #vscocam #VSCO #Minimalism #minimalart #getfractal #fractals #abstract #abstractphoto #soft #instagood #instagram #instagramers #contemporarydance #womanphotographer #motoz2play #brazil #design (em Ananindeua, Brazil) https://www.instagram.com/p/BpZWGmMlmfM/?utm_source=ig_tumblr_share&igshid=vtj4dyxh9n2
0 notes
danielburtonphotography · 4 years ago
Photo
Tumblr media
Wedding day!! ⠀⠀ ⠀⠀ Sneak peek! Huge congratulations to Mitchell and Lauren who where married yesterday at Morley Hayes!⠀⠀ ⠀⠀⠀ A bit of rain during the outdoor ceremony, a few umbrellas, the efficient assistance from Andrew, Gemma and the team at Morley Hayes and, with lovely guests and a lot of love made for some great photos and an enjoyable wedding yesterday. I cannot what to share! ⠀⠀ ⠀ A bit of fun with @getfractals and the love letters! ⠀ ⠀⠀⠀⠀⠀⠀ The Deets:⠀⠀⠀⠀ ⠀⠀⠀⠀ Venue - @morleyhayes ⠀⠀⠀ Photo - @danielburtonphoto ⠀⠀⠀ Bride @laurenshaw1201⠀⠀ Groom Mitchell ⠀⠀ ⠀ Suit TBC⠀ Dress @the.dress.shop.bridal⠀ Shoes @charlottemillsshoes ⠀ Chairs @epicevents187 Cake TBC⠀ Love letters TBC⠀ Effects @getfractals⠀ ⠀ ⠀ #castledoningtonphotographer #nottinghambrides #hilton #derby #derbyshire #eastmidlands #burton #weddingday #eastmidlandsphotographer #bride #weddingphotographer #nottinghamwedding #derbywedding #weddingplanning #leicesterweddingphotographer #nottinghamweddingphotographer #derbyweddingphotographer #weddingblog #thedressshop #relaxedweddingphotography #bride2be #gettingmarried2022 #castledonington #loveletters #coupleposes #rusticloveletters #morleyhayes #getfractals #danielburtonphotography #weddingmoments (at Morley Hayes) https://www.instagram.com/p/CQlNsfdMeD9/?utm_medium=tumblr
0 notes
microdotuniverse · 8 years ago
Photo
Tumblr media
#fractal #fractalfilters #getfractal
0 notes